【发布时间】:2018-01-30 03:09:48
【问题描述】:
我在编写 C 程序时遇到了一些困惑。
我的场景有 2 个线程,但它们是串行运行的,所以一次只有一个线程。我想在我的第一个线程中保存一个参数,我想在我的第二个线程中获取它。 (pthread here)
那么有没有办法意识到这一点?公共静态参数在线程结束时会被回收,因为它属于当前线程。我想在当前 process 而不是线程中保存一个值或指针,以便我可以将它附加到我的下一个线程中......
有什么办法可以实现吗?
非常感谢!
【问题讨论】:
-
顺序运行两个线程有什么意义?
-
@JonathonReinhart 这是一个特定的场景......这是一个有几个“步骤”的批处理作业。每一步都是一个线程,批处理作业只能按顺序运行。我想在我的步骤(线程)之间传输值:-)
-
“公共静态参数”是什么意思?
-
如果您的场景是固定的,您可以将数据存储在任何方便的地方。您没有显示任何代码,因此我们无法判断您是在主线程中创建、加入、创建、加入,还是创建、创建、加入、加入或其他。我们不知道线程 2 是如何知道它何时可以运行的。但是您的同步问题非常有限;使用传递给线程函数的指针或文件范围变量,甚至全局变量应该很容易管理。
-
@Jiddu.K 但如果它是顺序的,为什么还要麻烦线程呢?为什么不按顺序执行所有步骤?
标签: c process pthreads address-space thread-specific-storage