1
我剛開始提升。我想問我的代碼是否使用互斥鎖。 爲了測試它,我編寫了計算1到n的數字之和的代碼。傻的方法來計算,但我用n個線程...只是嘗試互斥...C++提升線程和互斥體
#include <boost/thread/mutex.hpp>
#include <boost/thread/thread.hpp>
#include <iostream>
#define NUMBER 10
boost::mutex mutex;
unsigned long long sum = 0;
class counter
{
public:
counter() : count(0) { }
unsigned long long increment()
{
return ++count;
}
private:
unsigned long long count;
};
counter c;
void count()
{
boost::mutex::scoped_lock scoped_lock(mutex);
unsigned long long i = c.increment();
sum += i;
std::cout << "i=" << i << "\tsum=" << sum << std::endl;
}
int main(int, char*[])
{
boost::thread_group thrds;
for (int i=0; i < NUMBER; ++i)
{
thrds.create_thread(&count);
}
thrds.join_all();
system("pause");
return 0;
}
結果看起來不錯,並沒有互斥很糟糕,所以我想我正確地使用它,只是想問問,如果一切都好。 感謝您的任何建議;我希望這會對我和其他人有所幫助。
這應該繼續codereview。 –