c - 如何使用 pthreads 访问本地存储

标签 c pthreads local-storage

我有完全并行的代码,没有依赖性,所以使用 pthreads 是一个自然的选择。不幸的是,只有一种共享资源,即日志文件。

我们不希望日志在任何情况下都逐行交错,因此我不想在每次日志调用时都使用互斥锁,而是想为每个线程打开一个单独的日志文件。但是目前,在整个代码中,都有一个全局变量记录器。

我目前有两个解决方案,但没有一个让我满意。

  1. 在线程 id 上实现哈希:pthread_self()。
  2. 将参数从线程创建传递到它调用的每个函数(非常具有侵入性)。

我喜欢一些聪明的方法,让它看起来像我在每个线程中都有一个全局变量,开销很小。

最佳答案

如果每个线程都有自己的日志,请使用 pthread_key_create 和相关函数来维护每个线程的记录器变量。

关于c - 如何使用 pthreads 访问本地存储,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4418181/

相关文章:

c - OS X 上的 sem_init

visual-studio - pthread 与 Visual Studio 2013 中的应用程序静态链接

c++ - 面向对象对嵌入式系统不利,为什么?

c - 链表指针打印内存泄漏

c++ - 如果在其他线程仍在运行时调用 exit(0) 会发生什么?

javascript - html5 本地存储是否按 iframe 存储?

javascript - 如何从 LocalStorage 读回数据

javascript - 如何有条件地设置组件状态

在组合声明/赋值之前可以存在局部变量吗?

c - 如何调试产生意外变量值的 C 程序?