Я работаю с потоками в Java, используя Netbeans 6.9.1 в Ubuntu 10.04 x86_64. У меня проблема с использованием метода yield (), потому что когда я вызываю этот метод, текущий поток продолжает работать, а не останавливается и разрешает выполнение другим потокам.
Приведенный ниже код - простой пример запуска 2 потоков с помощью yield. Вместо запуска первого потока, выведите одну строку и затем остановите поток, программа завершает поток 1, а затем запускает поток 2, так как метод yield не вызывается. Я проверил этот код на Windows, и он отлично работает! поэтому мне интересно, есть ли проблемы с использованием этого метода на Ubuntu или на 64-битных платформах.
Есть идеи? Заранее спасибо.
<code>
//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());
}
}</p>
<p>//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();
}
}