如果我们想在多线程应用程序中使用特定于线程的数据,那么如何定期从另一个收集器线程访问这些数据?有可能吗?
此致 拉姆
答案 0 :(得分:1)
是的,进程(应用程序)中的所有线程共享相同的内存。只需将数据的地址提供给收集器线程即可。小心并发访问:在更新时读取内存的某些部分。您可能需要使用互斥锁保护某些内存区域。
答案 1 :(得分:0)
在某些系统下,可以在所谓的线程局部存储中创建变量。 Gcc manual解释了如何实现它,并提供了Drepper文章的链接,该文章解释了技术细节。这是C标准扩展,因此在您的系统下应该有不同的机制。