C++ Boost thread赢了';不要正确地增加数值

C++ Boost thread赢了';不要正确地增加数值,c++,multithreading,boost-thread,C++,Multithreading,Boost Thread,因此,我有一个似乎不起作用的代码:(更多细节如下) 不是每个线程都将计数增加到下一个数字: Thread 1 increased count to 1 Thread 2 increased count to 2 Thread 1 increased count to 3 Thread 2 increased count to 4 Thread 1 increased count to 5 Thread 2 increased count to 6 如果我通过简单地调用这个函数两次来运行这段代码

因此,我有一个似乎不起作用的代码:(更多细节如下)

不是每个线程都将计数增加到下一个数字:

Thread 1 increased count to 1
Thread 2 increased count to 2
Thread 1 increased count to 3
Thread 2 increased count to 4
Thread 1 increased count to 5
Thread 2 increased count to 6
如果我通过简单地调用这个函数两次来运行这段代码,它将按预期工作。如果我使用线程,它不会


这里完全是初学者。了解我为什么愚蠢吗?

因为您需要使用
boost::ref
通过
boost::bind
通过引用传递某些内容

boost::thread th1(boost::bind(incr1,1,boost::ref(count)));

因为您需要使用
boost::ref
通过
boost::bind
通过引用传递某些内容

boost::thread th1(boost::bind(incr1,1,boost::ref(count)));

boost::bind
没有将int解析为引用。您需要使用引用包装器,以便:

boost::bind( incr1, 1, boost::ref(count) );

boost::bind
没有将int解析为引用。您需要使用引用包装器,以便:

boost::bind( incr1, 1, boost::ref(count) );