![Java多线程并发体系实战(微课视频版)](https://wfqqreader-1252317822.image.myqcloud.com/cover/362/52842362/b_52842362.jpg)
上QQ阅读APP看书,第一时间看更新
1.5.2 常用方法
1.线程名称
1)通过构造参数传入名称
代码如下:
![](https://epubservercos.yuewen.com/DAFF96/31397728807979506/epubprivate/OEBPS/Images/Figure-P16_18600.jpg?sign=1739268992-X4RaBSXifipyO03t3WRjg5RkepcIfnvr-0-239bd9f4a8a5508f96a4871ef91902e0)
FiveMain类主方法,代码如下:
![](https://epubservercos.yuewen.com/DAFF96/31397728807979506/epubprivate/OEBPS/Images/Figure-P16_18601.jpg?sign=1739268992-zfGkz9cvi7cZFynlzAv8EDSK9rKqKiZ3-0-cf22d6a15fdc5bbe3ba99d05740bbde7)
执行结果如下:
![](https://epubservercos.yuewen.com/DAFF96/31397728807979506/epubprivate/OEBPS/Images/Figure-P16_18603.jpg?sign=1739268992-QkjO4BMmlcJlvXkTTnb8sdPU9Nt5ZAKU-0-0c62f3aa38095a33cb5f59bc7a0a550a)
2)通过setName(String name)方法设置名称
代码如下:
![](https://epubservercos.yuewen.com/DAFF96/31397728807979506/epubprivate/OEBPS/Images/Figure-P17_18604.jpg?sign=1739268992-qJwIqBlaTQbNI9x1MwwgOVPFeoS0VRqE-0-ce754076c4db4a00f863b7b52f432990)
执行结果如下:
FiveThread:通过方法设置-名称 FiveThread:通过方法设置-名称
注意:如果没有设置名称,则默认生成一个固定格式的名称,如图1-5所示。
![](https://epubservercos.yuewen.com/DAFF96/31397728807979506/epubprivate/OEBPS/Images/Figure-P17_9816.jpg?sign=1739268992-HxADMKlbDkeGMKfL00Qgtpj5END9I7Qt-0-0e79bcf349784b61fb8c25872fec4fcb)
图1-5 默认线程名称
线程的名称需要根据业务设置,做到见名知意,名称虽然没有强制要求唯一,但是在使用中不要出现同名的情况。
2.线程ID
getId()方法可以返回一个long型的值,每次创建线程对象时增加1操作,并发安全,如图1-6所示。
![](https://epubservercos.yuewen.com/DAFF96/31397728807979506/epubprivate/OEBPS/Images/Figure-P17_9820.jpg?sign=1739268992-Y6LubwFLDkUBOWQup9HIUquvQhEjZ0tB-0-bee47ef11049ed9fc3574fc0a2fe0b4a)
图1-6 线程ID
3.当前执行线程对象
Thread.currentThread()可以获得当前执行线程对象,这里一定要分清楚当前对象和当前执行线程对象的区别,代码如下:
![](https://epubservercos.yuewen.com/DAFF96/31397728807979506/epubprivate/OEBPS/Images/Figure-P17_18605.jpg?sign=1739268992-ZEHWOERILWMNSIxP5C4vR7SBGDRAIaTf-0-191891fc18cc2d67f0d8ffdf69574105)
FiveMain类主方法,代码如下:
![](https://epubservercos.yuewen.com/DAFF96/31397728807979506/epubprivate/OEBPS/Images/Figure-P18_18607.jpg?sign=1739268992-3ciz9sZbya1aEH4t0XjWxeJIbIoNZ7FR-0-463cc79c87088173e0ba5c9d9549a2b2)
执行结果如下:
FiveThread:通过方法设置-名称 currentThread:通过方法设置-名称
修改FiveMain类,代码如下:
![](https://epubservercos.yuewen.com/DAFF96/31397728807979506/epubprivate/OEBPS/Images/Figure-P18_18608.jpg?sign=1739268992-8A0sAb2zwitshYBnxBBifZuzFGhsCOUB-0-ccc32c44363b5b9f0c972032dc56857e)
执行结果如下:
FiveThread:通过方法设置-名称 currentThread:main
注意:fiveThread.run()方法并没有启动新的线程,里面是由当前主方法的默认线程去执行的,所以Thread.currentThread().getName()输出的当前执行线程对象的名称是main,而this.getName()获得的是当前对象的名称。