我想实现逢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.
try { Thread.sleep(1); } catch(InterruptedException ie) { ie.printStackTrace(); }