美文网首页
C++开发中摆脱对boost库的thread的库的依赖

C++开发中摆脱对boost库的thread的库的依赖

作者: 希望是水户洋平 | 来源:发表于2021-03-09 17:48 被阅读0次

背景

以clickhouse源码为例,讲解如何摆脱对boost库的thread的库的依赖。

本博文素材来源于ClickHouse的GitHub的一次commit记录,原commit链接见下:

https://github.com/ClickHouse-Extras/boost/compare/809d0b72f422d63977c066566d3aee1feea022ba...729dc66b11a006df6c3b32294635cc2572fea594#diff-c237a0f6e67210fece6fa622cddb9cf377beae23bd8a11e73f655abfc56b23e4

commit的截图如下

image.png

可以看到,在这次commit中,删去了对 <boost/thread.hpp>的include,取而代之的是信号量库<mutex>来引入std::call_once。

简介

std::call_once是C++11起提供的,主要用在多线程编程中。在多线程的某些场景中,需要精确地只执行某个函数一次,例如用于初始化的init函数,如果多次调用init函数,则有可能导致不可预知的错误。那么在C++中就可以使用std::call_once配合std::once_flag来达到这个目的。
详细例子见这篇文章:https://en.cppreference.com/w/cpp/thread/call_once

相关文章

网友评论

      本文标题:C++开发中摆脱对boost库的thread的库的依赖

      本文链接:https://www.haomeiwen.com/subject/prjbqltx.html