Re: [J2SE] Thread的執行

看板java作者 (!H45)時間17年前 (2008/04/03 15:13), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串2/5 (看更多)
※ 引述《nf7series (真呆)》之銘言: : 問個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先執行完的一種方法? join 是等待另一個 thread 執行完。 : 另外,若我在程式中加入sleep()的方法,t1.sleep()、t2.sleep()、Thread.sleep()和 : sleep() <----沒指定哪個thread,各是讓哪個Thread休息呢?哪個thread呼叫sleep就是 : 讓它自己休息嗎?或是不管誰呼叫sleep都是讓目前正在執行的thread休息? sleep 是讓呼叫者睡著,你會發現它是靜態成員方法 (static member method) : 先謝謝了~~ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.116.246.218
文章代碼(AID): #17z8ElBF (java)
文章代碼(AID): #17z8ElBF (java)