深入学习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];

      订阅博客周刊 去订阅

文章归档

文章标签

友情链接

Auther ·HouTiZong
侯体宗的博客
© 2020 zongscan.com
版权所有ICP证 : 粤ICP备20027696号
PHP交流群 也可以扫右边的二维码
侯体宗的博客