我想創建2個線程都有無限循環,應該從彼此切換。問題是,我在第一個線程中永遠陷入困境,沒有發生上下文切換。我的錯誤是什麼? 我正在使用java8和Eclipse Juno。Java程序被困在一個特定的線程
這是 '主' 類:
public class Main {
/**
* @param args
*/
public static void main(String[] args)
{
test1 t = new test1();
test2 t2 = new test2();
t.run();
t2.run();
while(true)
{
System.out.println("text from main");
try {
Thread.sleep(100);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
這是 'TEST1' 類:
public class test1 implements Runnable {
public void run()
{
while(true)
{
System.out.println("text from thread");
try {
Thread.sleep(10000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
這是 'TEST2' 類:
public class test2 implements Runnable {
public void run()
{
while(true)
{
System.out.println("text from thread2");
try {
Thread.sleep(100);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
你沒有開始任何線程。請檢查http://docs.oracle.com/javase/tutorial/essential/concurrency/ – Mat
run()不會啓動一個新的執行線程。創建Thread thread = new Thread(t); thread.start(); – Heisenberg