![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=1738863700-Hec5Gcv3nH1p60LsQu0c1XHzOi4uyt04-0-075ff9a53bf802ca7aedf311bdccffc4)
FiveMain类主方法,代码如下:
![](https://epubservercos.yuewen.com/DAFF96/31397728807979506/epubprivate/OEBPS/Images/Figure-P16_18601.jpg?sign=1738863700-fmCKmUjK0nsRYD2PkfUxWW1JJCec6MuG-0-e31bfd16916dcbb7105ff95f2076b901)
执行结果如下:
![](https://epubservercos.yuewen.com/DAFF96/31397728807979506/epubprivate/OEBPS/Images/Figure-P16_18603.jpg?sign=1738863700-pm9q1KTiiCNl4n3OpVTrhFoByhfNAFqy-0-b16fbb6ab86a803db1c4f39a1c61af5a)
2)通过setName(String name)方法设置名称
代码如下:
![](https://epubservercos.yuewen.com/DAFF96/31397728807979506/epubprivate/OEBPS/Images/Figure-P17_18604.jpg?sign=1738863700-Yj8HwIDngqDLtwp8QxIXaymbVNDPXlNM-0-967f9a3150219c4903baf9175a3b5140)
执行结果如下:
FiveThread:通过方法设置-名称 FiveThread:通过方法设置-名称
注意:如果没有设置名称,则默认生成一个固定格式的名称,如图1-5所示。
![](https://epubservercos.yuewen.com/DAFF96/31397728807979506/epubprivate/OEBPS/Images/Figure-P17_9816.jpg?sign=1738863700-jXUDWinViI09SqDy2VBloPQ2tRdfxqlD-0-5405b57be7b3f2a2bebfc4323efdaeca)
图1-5 默认线程名称
线程的名称需要根据业务设置,做到见名知意,名称虽然没有强制要求唯一,但是在使用中不要出现同名的情况。
2.线程ID
getId()方法可以返回一个long型的值,每次创建线程对象时增加1操作,并发安全,如图1-6所示。
![](https://epubservercos.yuewen.com/DAFF96/31397728807979506/epubprivate/OEBPS/Images/Figure-P17_9820.jpg?sign=1738863700-W1mNtuwr53nRO25nYpGZ6cAYxAuZGcYB-0-e048649484fa19a3ddc03f02e48c09a6)
图1-6 线程ID
3.当前执行线程对象
Thread.currentThread()可以获得当前执行线程对象,这里一定要分清楚当前对象和当前执行线程对象的区别,代码如下:
![](https://epubservercos.yuewen.com/DAFF96/31397728807979506/epubprivate/OEBPS/Images/Figure-P17_18605.jpg?sign=1738863700-RCIA5RMFbxAhwajBU8FUu8hMl4NMiKmW-0-ea96da387645b16698d717d1e2bab48a)
FiveMain类主方法,代码如下:
![](https://epubservercos.yuewen.com/DAFF96/31397728807979506/epubprivate/OEBPS/Images/Figure-P18_18607.jpg?sign=1738863700-obB3dacskQ6ZyKgrwtFhO9WOr6e9Gxvy-0-135359ce3bc13ca0c5760acb44e225ca)
执行结果如下:
FiveThread:通过方法设置-名称 currentThread:通过方法设置-名称
修改FiveMain类,代码如下:
![](https://epubservercos.yuewen.com/DAFF96/31397728807979506/epubprivate/OEBPS/Images/Figure-P18_18608.jpg?sign=1738863700-p1Vvyc0VITz7jGVXu5vN660N3RkVKuCL-0-c1b8d26b492a64a7711c145ec8915fd3)
执行结果如下:
FiveThread:通过方法设置-名称 currentThread:main
注意:fiveThread.run()方法并没有启动新的线程,里面是由当前主方法的默认线程去执行的,所以Thread.currentThread().getName()输出的当前执行线程对象的名称是main,而this.getName()获得的是当前对象的名称。