关于c++:多线程服务器编程4C多线程系统编程精要

线程原语的选用

不间接应用Pthreads,而是应用更为易用的wrapper,封装上面的调用

  • 线程的创立和期待完结
  • mutex的创立、销毁、加锁、解锁
  • 条件变量的创立、销毁、期待、告诉、播送

在这些wrapper之上进一步构建线程同步组件

  • ThreadPool
  • CountDownLatch
  • BlockingQueue (有界/无界)

多线程编程须要留神的中央

C++规范库容器和std::string都不是线程平安的
iostream不是线程平安的
线程的标识符举荐应用gettid零碎调用,它的类型是pid_t,并且是惟一的
__thread是GCC内置的线程部分存储设施,效率高,但留神初始化只能应用编译器常量
每个文件描述符只由一个线程操作
RAII封装文件描述符
不要应用多线程+fork
不要应用多线程+signal

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理