針對執行緒同步,做了個小例子。
1.多執行緒例項化多個物件,呼叫同步方法
2.多執行緒通過單例,呼叫同步方法
public class mytest //單例物件不被建立
public static mytest mytest = null;//方便測試,就不寫
public static void main(string args) catch (interruptedexception e)
}});
t1.setname("執行緒1");
thread t2 =new thread(new runnable() catch (interruptedexception e)
}});
t2.setname("執行緒2");
t1.start();
t2.start(); }
synchronized public void testsync() throws interruptedexception
public static mytest getinstance()else
}}
方式1輸出結果(單例):
執行緒1/2
等待三秒
執行緒1/2
等待三秒
方式2輸出結果(非單例):
執行緒1/2
執行緒1/2
等待三秒
等待三秒
方式2 等待三秒 也可能會在兩個執行緒中間。
這裡需要說明的是多例的情況下,執行緒1所持的鎖跟執行緒2不發生關係。兩個執行緒呼叫的方法,也不是同乙個方法,
只是例項化同乙個class類,方法相同,卻不是同乙個。
多執行緒同步方法
今天學習了。用c語言寫的多執行緒程式 同步原來有如此多方法 1.臨界區 臨界區是保證在某乙個時間只有乙個執行緒可以訪問資料的方法。使用它的過程中,需要給各個執行緒提供乙個共享的臨界區物件,無論哪個執行緒占有臨界區物件,都可以訪問受到保護的資料,這時候其它的執行緒需要等待,直到該執行緒釋放臨界區物件為...
多執行緒同步方法
臨界區 critical section 互斥量 mutex 訊號量 semaphore 事件 event 的區別 1 臨界區 通過對多執行緒的序列化來訪問公共資源或一段 速度快,適合控制資料訪問。在任意時刻只允許乙個執行緒對共享資源進行訪問,如果有多個執行緒試圖訪問公共資源,那麼在有乙個執行緒進入...
MFC多執行緒同步方法
mfc提供了多種同步物件,下面我們只介紹最常用的四種 a 使用 ccriticalsection 類 當多個執行緒訪問乙個獨占性共享資源時,可以使用 臨界區 物件。任一時刻只有乙個執行緒可以擁有臨界區物件,擁有臨界區的執行緒可以訪問被保護起來的資源或 段,其他希望進入臨界區的執行緒將被掛起等待,直到...