package multithread;
/** * join()方法的使用
* *
*/class mythread extends thread
catch(interruptedexception e)
}}public class lesson8 catch (interruptedexception e)
}}
package multithread;
/** * join(int long)和sleep(int long)的區別
* */
class threada1 extends thread
@override
public void run()
}catch(interruptedexception e)
}}class threadb1 extends thread
catch(interruptedexception e)
}synchronized public void bservice()
}class threadc1 extends thread
@override
public void run() }
public class lesson9 catch(interruptedexception e)
}}
結論:1、join和synchronized區別是:join()在內部使用wait()方法進行等待,而synchronized關鍵字使用的是「物件監視器」原理作為同步。
2、join()方法與interrupt()方法如果相遇,則會出現異常。
3、join(int long)和sleep(int long)的區別:由於join()內部呼叫wait(),當前執行緒的鎖被釋放,其他執行緒就可以呼叫此執行緒的同步方法。thread.sleep()方法卻不釋放鎖。
《java多執行緒程式設計技術核心》 讀書筆記4
等待通知機制wait notify 的用法 class mythread1 extends thread public void run catch interruptedexception e class mythread2 extends thread public void run publi...
《java 多執行緒程式設計核心技術》讀書筆記六
reentrantlock reentrantreadwritelock reentrantlock lock unlock 這兩個方法之間的 為執行緒同步執行 持有相同鎖的方法均為同步執行 condition await 等同 object中的wait signal 等同object中的notif...
漫談C Builder多執行緒程式設計技術
在很多情況下,可能需要為程式建立執行緒。這裡給出其中一些可能性 1 如果建立的是乙個多文件介面 multiple document inte ce,mdi 程式,那麼為每個視窗分配乙個執行緒就顯得十分重要了,例如,對於乙個通過多個modem同時連線到多個主機的mdi通訊程式而言,如果每個視窗都有它自...