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