早教吧作业答案频道 -->其他-->
Java线程类问题写一个线程类MyThread,该线程实现了Runnable接口,写一个main方法,*用for循环创建3个线程对象。需求如下:*①利用线程类的构造函数输出:"创建线程3"。(备注:当创建
题目详情
Java 线程类问题
写一个线程类MyThread,该线程实现了Runnable接口,写一个main方法,
* 用for循环创建3个线程对象。需求如下:
*
① 利用线程类的构造函数输出:"创建线程3"。
(备注:当创建一个线程的时候,标记为1,再次创建一个线程的时候,标记为2,
所以输出的"创建线程3"就是创建的第三个线程)
② 在run方法中输出:“线程X :计数Y”,当执行次数达到6次的时候,退出。
(备注:其中“线程X”为第X个线程,“计数Y”为该线程的run方法执行了多少次)
第一部分我做出来了
但是第二部部分没一点思路
知道的请告诉在下思路 谢谢
写一个线程类MyThread,该线程实现了Runnable接口,写一个main方法,
* 用for循环创建3个线程对象。需求如下:
*
① 利用线程类的构造函数输出:"创建线程3"。
(备注:当创建一个线程的时候,标记为1,再次创建一个线程的时候,标记为2,
所以输出的"创建线程3"就是创建的第三个线程)
② 在run方法中输出:“线程X :计数Y”,当执行次数达到6次的时候,退出。
(备注:其中“线程X”为第X个线程,“计数Y”为该线程的run方法执行了多少次)
第一部分我做出来了
但是第二部部分没一点思路
知道的请告诉在下思路 谢谢
▼优质解答
答案和解析
interrupt(), stop(), suspend() 都不推荐再用,而是应该让 run 方法正常地退出,如果你打算让它循环,就在 run() 方法内用一个循环(比如 while (indicator) 循环让它在标记位 indicator 改变后退出来)。
通过interrupt 对比那个线程是不是当前线程,这种做法很怪异,不是在 java 中用 == 就可以比较的么 thread == Thread.currentThread() 就是当前线程,再说了,怎么会是当前线程来决定当前线程的命运呢?管理线程应该和工作线程分开才合适。
现在这个代码是先尝优雅地退出,之后,强制退出,这说明作者不确信他写的代码能正常地退出,那么什么情况下不能正常地退出呢,如果是 socket 阻塞了,那我们给一个 timeout,如果是数据库阻塞了,我们允许强制退出,如果不是这种外界资源导致的阻塞,我们的程序就应该保证能正常地退出,否则就是质量问题。另外,interrupt 之后出现的异常完全不应该 e.printStackTrace() 因为你应该确信错误是什么,就直接打印出一段类似“线程未在指定时间内退出,强制终止它”的消息。
interrupt() 之后再 join() 看起来不适合,不过,可能只是为了保险起见。反正看不去哪里不确信。
如果你想等几个线程都完成之后你的主线程才继续,那么代码应该时先把工作线程都启动,全都启动之后再跑循环 workerThreadX.join() 把几个工作线程都调用一次 .join(),(注意先把所有线程启动,再来 join),那些工作线程应该自己根据标记位来退出,或者工作完成了后退出。
通过interrupt 对比那个线程是不是当前线程,这种做法很怪异,不是在 java 中用 == 就可以比较的么 thread == Thread.currentThread() 就是当前线程,再说了,怎么会是当前线程来决定当前线程的命运呢?管理线程应该和工作线程分开才合适。
现在这个代码是先尝优雅地退出,之后,强制退出,这说明作者不确信他写的代码能正常地退出,那么什么情况下不能正常地退出呢,如果是 socket 阻塞了,那我们给一个 timeout,如果是数据库阻塞了,我们允许强制退出,如果不是这种外界资源导致的阻塞,我们的程序就应该保证能正常地退出,否则就是质量问题。另外,interrupt 之后出现的异常完全不应该 e.printStackTrace() 因为你应该确信错误是什么,就直接打印出一段类似“线程未在指定时间内退出,强制终止它”的消息。
interrupt() 之后再 join() 看起来不适合,不过,可能只是为了保险起见。反正看不去哪里不确信。
如果你想等几个线程都完成之后你的主线程才继续,那么代码应该时先把工作线程都启动,全都启动之后再跑循环 workerThreadX.join() 把几个工作线程都调用一次 .join(),(注意先把所有线程启动,再来 join),那些工作线程应该自己根据标记位来退出,或者工作完成了后退出。
看了 Java线程类问题写一个线程...的网友还看了以下:
问个线性代数秩的问题两个向量组一组乘一个常数矩阵得另一个向量组能得到这两向量组秩的关系吗 2020-05-13 …
问个线代问题,这两个等号见是运用了哪个基本定理? 2020-05-16 …
问个数学题,2013四川雅安中考数学的第24题怎么做呀?老师考我们准初三的了如图,已知抛物线y=a 2020-05-16 …
Java线程类问题写一个线程类MyThread,该线程实现了Runnable接口,写一个main方 2020-05-17 …
1.he must remain in bed for another two days 就划线部 2020-05-17 …
图不知道该怎么搞上来,只好略了.直线上有:2个点,3个点,1条线段,4个点,.n个点.图(1)中有 2020-05-17 …
3句英语句型转换1.Mymotheralwaysbuystwopacketsofsaltevery 2020-05-21 …
三阶幻方在3×3的方格内,每行、每列以及每条对角线衫的三个数之和都相等.x表示几?提问:第一行第一 2020-06-16 …
已知篮球比赛中,得分规则如下:3分线外侧投入可得3分,踩线及3分线内侧投入可得2分,不进得0分;经 2020-06-27 …
1.存在一个整数j=10,设计4个线程,每个线程执行十次循环操作,其中两个线程每次对j增加5,另外 2020-07-21 …