深入STL源码解读线程

2024-05-08 11:16:48 浏览数 (2)

大家好,我是光城,最近有小伙伴让我讲一下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吧!

0 人点赞