多執行緒例項呼叫同步方法

2021-07-29 17:51:27 字數 946 閱讀 3494

針對執行緒同步,做了個小例子。

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 類 當多個執行緒訪問乙個獨占性共享資源時,可以使用 臨界區 物件。任一時刻只有乙個執行緒可以擁有臨界區物件,擁有臨界區的執行緒可以訪問被保護起來的資源或 段,其他希望進入臨界區的執行緒將被掛起等待,直到...