std与boost线程的一点区别,自定义线程接口类

本文探讨了Boost线程与标准库std::thread在处理线程中断上的不同。Boost提供interrupt()函数能直接终止线程,包括打断sleep,而std::thread没有此功能,只能通过join()等待线程结束。示例展示了如何在Boost中自定义线程接口,并通过CMakeLists.txt配置文件进行编译。测试结果显示了线程的运行状态和id。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

boost有interrupt()函数,可以直接打断终止,可以打断sleep。

std的没有interrupt(),只能jion,不能打断sleep。

boost自定义线程接口

要安装boost库,包含头文件和lib,还要链接

CMakeLists.txt文件如下

cmake_minimum_required(VERSION 2.8)

set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -pthread -m64 -std=c++11 -fPIC -fno-strict-aliasing")

project(test2)

#包含lib文件夹
link_directories("/root/soft/boost_1_67_0/lib")
#包含头文件夹
include_directories("." "/root/soft/boost_1_67_0/")

add_executable(${PROJECT_NAME} "main.cpp" )
#链接用到的库
target_link_libraries (${PROJECT_NAME}  boost_chrono boost_system boost_thread)

#ifndef BASE_THREAD_H
#define BASE_THREAD_H

#include<atomic>
#include<boost/thread.hpp>
#include
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值