第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

我的想法是不是要在方法開始加鎖,方法最后解鎖,才不會起沖突,那位慕友幫我解決下!

我的想法是不是要在方法開始加鎖,方法最后解鎖,才不會起沖突,那位慕友幫我解決下!

C++
慕哥6287543 2023-03-03 14:10:05
問題是這樣的:有一個方法A(int a)經(jīng)過方法處理a 后,輸出一個值b,我要啟動兩個線程都去執(zhí)行它,但是輸出的結(jié)果比較亂,理想結(jié)果應(yīng)該是 線程1+參數(shù)a1得到結(jié)果b1,線程2+參數(shù)a2得到結(jié)果b2,實際的結(jié)果是兩個線程都輸出b2,或a2等等。
查看完整描述

3 回答

?
交互式愛情

TA貢獻(xiàn)1712條經(jīng)驗 獲得超3個贊

你參數(shù)是通過指針的方法送進(jìn)去的?然后結(jié)果每個線程要讀數(shù)據(jù)的時候數(shù)據(jù)已經(jīng)不是送入時候的數(shù)據(jù)了嗎
送線程參數(shù)的時候,為每個線程分配一個新的空間來保存這個“參數(shù)”。
例如你原來是
int a = 10;
_beginthreadex(0, 0, ThreadFunc, &a, 0, 0);
a = 20;
_beginthreadex(0, 0, ThreadFunc, &a, 0, 0);
現(xiàn)在要
int a = 10;
int *p = new int;
*p = a;
_beginthreadex(0, 0, ThreadFunc, p, 0, 0);
p = new int;
a = 20;
*p = a;
_beginthreadex(0, 0, ThreadFunc, p, 0, 0);

記住線程函數(shù)退出前要delete掉這個參數(shù)p

 


查看完整回答
反對 回復(fù) 2023-03-06
?
慕慕森

TA貢獻(xiàn)1856條經(jīng)驗 獲得超17個贊

這個方法A是否可以做到線程安全?即互不干擾執(zhí)行?

否則加鎖,感覺起不到并發(fā)的作用。

另外,如果這個方法的確無法做到線程安全,建議也只是臨界區(qū)加鎖,即存在沖突的那一段代碼加鎖,否則影響效率。

查看完整回答
反對 回復(fù) 2023-03-06
?
largeQ

TA貢獻(xiàn)2039條經(jīng)驗 獲得超8個贊

沒聽懂你要怎么輸出,給你創(chuàng)建臨界區(qū)的函數(shù):
CRITICAL_SECTION m_csList;
InitializeCriticalSection(&m_csList);
EnterCriticalSection(&m_csList);
LeaveCriticalSection(&m_csList);
DeleteCriticalSection(&m_csList);

查看完整回答
反對 回復(fù) 2023-03-06
  • 3 回答
  • 0 關(guān)注
  • 126 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號