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

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

如下程序中,請(qǐng)幫忙更正一下,非常感謝!

如下程序中,請(qǐng)幫忙更正一下,非常感謝!

C++
慕勒3428872 2023-03-03 14:10:51
// 在以下簡(jiǎn)單的程序中,運(yùn)行結(jié)果應(yīng)該是20000000,然而在GCC編譯運(yùn)行后輸出的數(shù)介于一千萬到兩千萬之間,而且每次運(yùn)行的結(jié)果都不同,這是為什么呢(┬_┬)#include <iostream>#include <thread>int count=0;void test(){for(int i=0;i<10000000;i++)count++;}int main(){thread t1(test), t2(test);t1.join();t2.join();std::cout<<count<<std::endl;return 0;}
查看完整描述

2 回答

?
嗶嗶one

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

線程對(duì)象在聲明之后就會(huì)立即執(zhí)行。


thread t1(test), t2(test);//這里兩個(gè)線程同時(shí)啟動(dòng)了,而你的線程函數(shù)沒加鎖

方法一:


//主函數(shù)應(yīng)該這樣寫int main(){    thread t1(test);    t1.join();      thread t2(test);    t2.join();       std::cout<<count<<std::endl;       return 0;}

方法二:


//給線程函數(shù)加上鎖#include <iostream>#include <thread>#include <mutex>  using namespace std;   int count=0;mutex gMutex;   void test(){    lock_guard<mutex> lk (gMutex);    for(int i=0;i<10000000;i++)           count++;   }   int main(){    thread t1(test), t2(test);    t1.join();       t2.join();       std::cout<<count<<std::endl;       return 0;   }

 


查看完整回答
反對(duì) 回復(fù) 2023-03-06
?
夢(mèng)里花落0921

TA貢獻(xiàn)1772條經(jīng)驗(yàn) 獲得超6個(gè)贊

因?yàn)閏ount變量不是線程安全的,因此多線程并發(fā)時(shí)可能出現(xiàn)讀臟數(shù)據(jù)。

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

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號(hào)

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