c++ - Linux 线程傻瓜。有人可以解释一下 linux 中多线程库之间的区别吗?

标签 c++ linux multithreading

Linux 和 C++ 的新手。 我想创建一个只需要在 linux (ubuntuz) 上运行的应用程序,我需要使用基本的读写锁。

我看到有几个库提供了“并发能力”。 例如要使用互斥量,至少有 3 个选项:

  1. pthread_mutex_lock (pthread.h)

  2. boost::mutex

  3. std::mutex(互斥量)

谁能解释一下各种方法之间的区别?

最佳答案

  • pthreads 是一个 C-API,可用于所有符合 posix 标准的系统(pthreads 代表 Posix THREADS)。

  • boost::mutex 是一个仅限 C++ 的 API,它依赖于“boost”库(您不能在 C 代码中使用它;您添加对“boost”的依赖)

    <
  • 许多来自 boost 的功能最终将出现在 C++ 标准库中,例如线程;对于 C++11,你有 std::mutex,但你需要一个足够新的编译器来支持最近添加的内容。例如如果您希望您的应用程序可以向后移植到较旧的发行版,您可能希望避免它。

关于c++ - Linux 线程傻瓜。有人可以解释一下 linux 中多线程库之间的区别吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11716695/

相关文章:

linux - 使用 awk 按列数将行移动到文件中

linux - 我如何在 linux 中监视进程的每个线程的内存使用情况?

c++ - initializer_list 返回的生命周期延长

c++ - 使用 boost 转换度分秒弧度 boost_1_48_0

c# - 关于设计模式和高级编程的好书,不是 Head First

PHP Cron 作业 Windows 和 Linux

wpf - 在单个 WPF 线程中加载多个模块

java - 具有强制排队功能的 ThreadPoolExecutor

objective-c - 如何使对象接收到的每条消息都是线程安全的?

c++:有界数字的异构模板