我在Ubuntu 10.04 x86_64上使用Netbeans 6.9.1在Java中使用Threads。我使用yield()方法时遇到问题,因为当我调用此方法时,当前线程继续运行而不是停止并让其他线程执行。
下面的代码是使用yield运行2个线程的简单示例。而不是运行第一个线程,打印一行然后停止线程,程序完成线程1然后运行thread2,因为没有调用方法yield。我在Windows上测试了这个代码,它运行得很好!所以我想知道在Ubuntu或64位平台上使用这种方法是否有任何问题。
有什么想法吗?提前谢谢。
//ThreadTest.java
public class ThreadTest extends Thread{
public ThreadTest (String name){
super(name);
}
public void run(){
for (int i=0;i<5;i++){
System.out.println(getName()+" - "+i);
yield();
}
System.out.println(" END "+getName());
}
}
//Main.java
public class Main {
public static void main(String[] args) {
ThreadTest t1 =new ThreadTest("Thread1");
ThreadTest t2 =new ThreadTest("Thread2");
t1.start();
t2.start();
}
}