深入学习Thread类
编程技术  /  houtizong 发布于 3年前   71
一. 线程的名字
下面来看一下Thread类的name属性,它的类型是String。它其实就是线程的名字。在Thread类中,有String getName()和void setName(String)两个方法用来设置和获取这个属性的值。
同时,Thread类还提供相应的构造方法,让Thread类的对象在创建的时候就有一个名字。构造方法如下:
a.Thread(String name):接受一个String实例为参数的Thread类的构造方法,这个参数就是这个线程的名字
b.Thread(Runnable target,String name):接受一个Runnable实例和一个String实例为参数的Thread类构造方法。其中Runnable中的run()方法就是线程将要执行的方法;String实例就是这个线程的名字。
如果在创建一个Thread实例的时候没有为Thread实例提供名字,那么Thread实例将使用一个默认的名字。对于在程序中创建的线程,线程的默认名字一般是“Thread-”加上一个递增的整数;而对于主线程,它的名字一般会被设置为main。
实例:
package com.bijian.study;public class ShowThreadName extends Thread { //继承自Thread类 public ShowThreadName() { //构造方法,没有参数 super(); //调用父类相应的构造方法 } public ShowThreadName(String name) { //构造方法,提供线程的名字 super(name); //调用父类相应的构造方法 } public void run() { //覆盖run()方法 System.out.println("这个线程的名字是:" + this.getName());//输出线程的名字 }}
package com.bijian.study;public class ShowThreadNameMain { public static void main(String[] args) { //使用无参数的构造方法创建Thread类实例,这是它将有一个默认的名字 ShowThreadName defaultName = new ShowThreadName(); //使用构造方法给线程指定一个名字 ShowThreadName name = new ShowThreadName("线程的名字"); //启动两个线程 defaultName.start(); name.start(); }}
运行结果:
这个线程的名字是:Thread-0
这个线程的名字是:线程的名字
二. 得到当前的线程
Thread类的静态方法currentThread()
Java的线程是执行Java程序的基本单位,也就是说,所有的Java代码最终都是由线程执行的。如果在程序中需要得到“执行当前代码的线程的引用”,那么就可以使用Thread类的静态方法Thread.currentThread()。
这个方法的返回值是Thread的引用,这个引用所指向的Thread类的实例正是“指向当前代码的线程”。
请勿发布不友善或者负能量的内容。与人为善,比聪明更重要!
技术博客集 - 网站简介:
前后端技术:
后端基于Hyperf2.1框架开发,前端使用Bootstrap可视化布局系统生成
网站主要作用:
1.编程技术分享及讨论交流,内置聊天系统;
2.测试交流框架问题,比如:Hyperf、Laravel、TP、beego;
3.本站数据是基于大数据采集等爬虫技术为基础助力分享知识,如有侵权请发邮件到站长邮箱,站长会尽快处理;
4.站长邮箱:[email protected];
文章归档
文章标签
友情链接