大家好,我是光城,最近有小伙伴让我讲一下thread,于是安排起来了,写了几千字的文章。
想象一下,一起直播看gcc-13源码,一起学习C 11、C 20的源码是多么的有趣,本次讲解的内容将会带大家深入gcc-13的源码,从C 11到C 20,一起揭秘thread与jthread,非常硬核。
目标
帮助学习者深入学习thread与jthread,学习本次直播你将掌握
- 如何阅读gcc-13的源码
- C 11 thread的内部实现
- C 20 jthread的内部实现
- C 20 stop_token与stop_source的内部实现
- 一些常考的面试问题
举几个简单的例子:
问题1: 下面代码你觉得有什么问题?这两个程序能work?
代码语言:javascript复制// test1.cc
int main() {
thread t1;
}
// test2.cc
int main() {
std::thread t2(threadFunction, a, b);
}
问题2: 假设现在有下面两个函数f1、f2,这两个函数可以正常运行吗?为什么?
代码语言:javascript复制void f1() {
std::thread t1(tfunc);
std::thread t2;
t2 = std::move(t1);
t2.join();
}
void f2() {
std::thread t1(tfunc);
std::thread t2(tfunc);
t2 = std::move(t1);
t2.join();
}
相信听完本次直播的分享一定会解答这些问题,跟我们一起学习C ,一起共读thread与jthread吧!