欢迎分享,转载请注明来源:内存溢出
应用专业人士的回答:我尽最大努力把问题解释清楚,不足之处,请赐教!首先,之所以出现线程,就是为了更好的利用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)}}}看你提出的问题,应该自己有一部分代码了,我还是先提思路吧。 你需要一个阻塞队列,需要阻塞的进程放入阻塞队列,这个队列用单向链表即可。 然后再进程调度的间隙扫描阻塞队列,看有没有需要解除阻塞的进程,如果有将其从阻塞队列摘除,挂入就绪队列。
赞
(0)
打赏
微信扫一扫
支付宝扫一扫
有哪些质量上乘的程序员必关注的网站或论坛
上一篇
2023-05-15
苹果ipad怎么添加微信小程序
下一篇
2023-05-15
评论列表(0条)