熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Java編程 >> Java高級技術 >> 正文

Java2入門經典教程 11.2 管理線程[2]

2013-11-23 19:58:01  來源: Java高級技術 

    同步方法

    你可以使用任何類對象的方法子集甚至是全集互斥因此在任何給定的時間只有一個方法能執行通過使用關鍵字synchronised在類中聲明它們你可以構造互斥的方法例如

 class MyClass
{
synchronized public void methodl()
{
//Code for the method
}
synchronized public void method()
{
//code for the me method
}
public void method()
{
//code foe the method
}
}

    現在在任意時刻在類中只有一個同步方法可以執行只有在當前正執行的同步方法結束後才能可以啟動針對同一個對象的另一個同步方法這裡的想法是每個同步方法執行時保證對對象獨占訪問至少對涉及到的類對象的其他同步方法是這樣

    同步過程使用了每個對象與相關的一個內部鎖(lock)該鎖是一種標志當一個同步方法啟動執行時由稱為加鎖(locking)的過程設置對一個對象的每個同步方法檢查看看是否鎖已被另一個方法設置如果已設置在重新設置成開鎖方式前不能啟動執行因此一次只能有一個同步方法執行因為設置鎖的方法阻止任何其他同步方法啟動

    注意這裡沒有限制對同一類的兩個不同對象同時執行同步方法只是針對同時訪問任一個被控制的對象

    在myClass類中的三個方法兩個被聲明成synchronized因此討類的仟何一個對象同一時刻只能執行一個方法沒被聲明成同步的method()總可以由線程執行無淪同步方法是否正在執行

[]  []  []  []  []  []  []  []  []  


From:http://tw.wingwit.com/Article/program/Java/gj/201311/27746.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.