关于多线程,各个系统,框架都有自己的实现,例如
windows: CreateThread
MFC: AfxBeginThread
Qt : QThread
boost库是跨平台的,如果使用boost的多线程,在不同平台之间就无需修改代码,这一点还是看各人的喜好,有些人不一定喜欢用boost的多线程,C++11的多线程实现也很好。
使用boost的多线程,需要包含如下头文件
#include<boost/thread.hpp>
包含lib库目录
boost_1_70_0\stage\lib
同时在使用时,最好加上boost名字空间,防止和其它库的thread混淆。
boost的thread主要有如下方法:
(1)join() 一直等待,知道当前线程结束
(2)time_join() 最多等待多长时间,线程就返回
(3)yeild() 放弃剩余的时间片
(4)sleep(chrono::seconds(1)) 让线程睡眠
测试代码如下:
#include<boost/thread.hpp>
using namespace boost; //名字空间
#include<iostream>
using namespace std;
//要想运行,需要libboost_thread-vc141-mt-gd-x32-1_67.lib,附加库目录
void ThreadFun(string & threadName)
{
for (size_t i = 0