我想实现逢10就转换线程,请高手帮我看看错误在哪里
public class TestYield {
public static void main(String[] args) {
MyThread t1 = new MyThread("t1");
MyThread t2 = new MyThread("t2");
t1.start();t2.start();
}
}
class MyThread extends Thread {
MyThread(String s){
super(s);
}
public void run(){
for(int i=1;i<=100;i++){
System.out.println( getName() + ": " + i );
if(i%10 == 0)
yield();
}
}
}
------解决方案--------------------不过你需要保证的是第一次是按照10次来切换的
------解决方案--------------------如果简单就是逢10 切换线程,我测试了一下,基本上可以,很少有未切换的情况。
为确保线程切换,在yield()后家一休眠1ms.
Java code
try
{
Thread.sleep(1);
}
catch(InterruptedException ie)
{
ie.printStackTrace();
}