调用以下哪些方法可以使运行状态的线程进入阻塞状态

调用以下哪些方法可以使运行状态的线程进入阻塞状态,第1张

应用专业人士的回答:我尽最大努力把问题解释清楚,不足之处,请赐教!首先,之所以出现线程,就是为了更好的利用CPU,让她更加“精明”的干活。通过调用Thread类的start()方法来启动一个线程,这时此线程是处于就绪状态,并没有运行。然后通过此Thread类调用方法run()来完成其运行 *** 作的,这里方法run()称为线程体,它包含了要执行的这个线程的内容,Run方法运行结束,此线程终止,而CPU再运行其它线程,而如果直接用Run方法,这只是调用一个方法而已,程序中依然只有主线程--这一个线程,其程序执行路径还是只有一条,这样就没有达到写线程的目的。记住:线程就是为了更好地利用CPU,提高程序运行速率的!publicclassTestThread1{publicstaticvoidmain(String[]args){Runner1r=newRunner1()//r.run()//这是方法调用,而不是开启一个线程Threadt=newThread(r)//调用了Thread(Runnabletarget)方法。且父类对象变量指向子类对象。t.start()for(inti=0i<100i++){System.out.println("进入MainThread运行状态")System.out.println(i)}}}classRunner1implementsRunnable{//实现了这个接口,jdk就知道这个类是一个线程publicvoidrun(){for(inti=0i<100i++){System.out.println("进入Runner1运行状态")System.out.println(i)}}}

看你提出的问题,应该自己有一部分代码了,我还是先提思路吧。 你需要一个阻塞队列,需要阻塞的进程放入阻塞队列,这个队列用单向链表即可。 然后再进程调度的间隙扫描阻塞队列,看有没有需要解除阻塞的进程,如果有将其从阻塞队列摘除,挂入就绪队列。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/11345648.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-15
下一篇 2023-05-15

发表评论

登录后才能评论

评论列表(0条)

保存