[J2SE] Thread的執行
問個Thread執行的問題:
public class ThreadTest extends Thread
{
public void run()
{
for(int i=0;i<11;i++)
{
System.out.println(getName()+":"+i);
}
}
public static void main(String[] args) throws Exception
{
ThreadTest t1=new ThreadTest();
ThreadTest t2=new ThreadTest();
t1.start();
t2.start();
//t1.join();
//Thread.sleep(1000);
for(int i=0;i<11;i++)
{
System.out.println("Main Thread"+":"+i);
}
}
}
以上的code,有兩個建立出來的thread t1,t2和一個Main thread,各自都會印出0~10,
我剛測試,若code裡面有用t1.join(),則t1一定會先跑完,才會再跑Main thread,但
t1和t2仍是競爭的,沒有說誰會比誰先執行完。
所以我是否可說join是用來確保thread會比Main thread先執行完的一種方法?
另外,若我在程式中加入sleep()的方法,t1.sleep()、t2.sleep()、Thread.sleep()和
sleep() <----沒指定哪個thread,各是讓哪個Thread休息呢?哪個thread呼叫sleep就是
讓它自己休息嗎?或是不管誰呼叫sleep都是讓目前正在執行的thread休息?
先謝謝了~~
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 219.87.151.40
※ 編輯: nf7series 來自: 219.87.151.40 (04/03 10:21)
討論串 (同標題文章)
以下文章回應了本文:
完整討論串 (本文為第 1 之 5 篇):