1
부스트가 시작되었습니다. 내 코드가 뮤텍스를 잘 사용하는지 물어보고 싶다. 그것을 테스트하기 위해 1부터 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;
}
결과가 좋은보고 ... 단지 뮤텍스를 시도 ... 바보 방법은 계산합니다하지만 난 n 개의 스레드를 사용 모든 것은 괜찮습니다. 조언 해 주셔서 감사합니다. 나와 다른 사람들에게 도움이되기를 바랍니다. ... 내가 전역 변수를 사용하지 것이다하지만
이것은 codereview에 있어야합니다. –