#include <iostream>
#include <boost/thread/thread.hpp>
#include <boost/thread/mutex.hpp>
boost::mutex io_mutex;
// start()和hello()方法都必须是static方法
class MyClass
{
public:
static void fun1()
{
std::cout<<" Thread !"<<std::endl;
}
static void start()
{
boost::thread myThread( fun1 );
myThread.join();
}
};
struct count
{
count(int id) : id(id) { }
void operator()()
{
for (int i = 0; i < 5; ++i)
{
boost::mutex::scoped_lock
lock(io_mutex);
std::cout<<" thread"<<id << " : "
<< i+1 << std::endl;
}
std::cout<<std::endl;
}
int id;
};
void createThread1()
{
std::cout<<" thread1!\n"<<std::endl;
}
void main()
{
boost::thread thread1(&createThread1);
thread1.join();
boost::thread thrd2(count(1));
boost::thread thrd3(count(2));
thrd2.join();
thrd3.join();
MyClass::start(); // 类内部静态方法启动线程
system("pause");
}
output:
thread1!
thread1 : 1
thread1 : 2
thread1 : 3
thread1 : 4
thread1 : 5
thread2 : 1
thread2 : 2
thread2 : 3
thread2 : 4
thread2 : 5
请按任意键继续. . .