当前位置: 技术问答>java相关
关于线程,请大家来看看
来源: 互联网 发布时间:2015-04-09
本文导语: 在一个线程中,代码如下 1: public void run(){ while (true){}//空循环 } 另一个: 2: public void run(){ while (true){ yield();} } 问题:如果该线程得到cpu的使用权50毫秒(比如说) 那么1是不是一直空循环,什么也不...
在一个线程中,代码如下
1: public void run(){
while (true){}//空循环
}
另一个:
2: public void run(){
while (true){ yield();}
}
问题:如果该线程得到cpu的使用权50毫秒(比如说)
那么1是不是一直空循环,什么也不做,等到50毫秒结束,才把cpu让给其他线程
而2是立即把cpu让给其他线程??
1: public void run(){
while (true){}//空循环
}
另一个:
2: public void run(){
while (true){ yield();}
}
问题:如果该线程得到cpu的使用权50毫秒(比如说)
那么1是不是一直空循环,什么也不做,等到50毫秒结束,才把cpu让给其他线程
而2是立即把cpu让给其他线程??
|
CPU处理线程分为:线程运行时间和调度线程时间。
对于1和2CPU的处理方式是:运行1(如果1是空循环则在循环
中循环什么都不作:循环50毫秒,如果不是则运行程序50毫秒,50毫秒后不管有没有运行完while中的程序1被迫停止,CPU交给2运行,交给2运行用的就是CPU的调度线程时间),调度线程,运行2。
对于1和2CPU的处理方式是:运行1(如果1是空循环则在循环
中循环什么都不作:循环50毫秒,如果不是则运行程序50毫秒,50毫秒后不管有没有运行完while中的程序1被迫停止,CPU交给2运行,交给2运行用的就是CPU的调度线程时间),调度线程,运行2。
|
如果不加sleep 线程会以很快的速度执行循环体
加上sleep可以控制循环体的执行速度
加上sleep可以控制循环体的执行速度
|
使用sleep的原因是当sleep时,线程就在睡觉,而把cpu时间让给其他线程。
没有sleep,所有的时间都让一个线程独占了
没有sleep,所有的时间都让一个线程独占了
您可能感兴趣的文章:
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。