0

我阅读了有关 pthread 及其相关 API 的所有内容,以创建、锁定和同步不同的线程。但我经常发现像线程池、消费者/生产者等字词提示。我知道这些是 pthread 实现的模型。

任何人都可以让我知道 pthread 实现的各种模型及其优点/缺点(如果有的话)?什么样的场景我们应该使用哪个模型?

还有为什么一些 C 系统库函数不能安全地在线程例程中调用,比如 strtok 等?

提前致谢。

4

1 回答 1

2

它们不是 pthread 实现的模型。线程池和消费者/生产者是您可以使用 pthreads 实现的东西。

pthreads 的实现方式取决于您使用的操作系统。pthreads 基本上是一个 API。

一些 C 函数不可重入,因为它们是在考虑线程之前编写的,因此在线程程序中调用它们不是一个好主意。例如,strtok 将它最后到达的位置存储在您的字符串中(因此同时在 2 个不同的字符串上调用 strtok 不是一个好主意,更不用说在线程上下文中了)。

于 2013-06-27T10:21:26.370 回答