c - 线程的缓存在退出时是否刷新到主内存?

标签 c multithreading caching operating-system pthreads

题目是问题:当线程退出时,它的缓存内存是否刷新到主内存?

我想知道因为主线程创建一些线程的情况很常见,它们在数组的独立部分上做一些工作(彼此之间没有数据依赖性),主线程加入所有工作线程,然后做更多的计算使用工作线程计算产生的数组值。是否需要将数组声明为 volatile 以便主线程查看其副作用?

最佳答案

pthreads 规范要求pthread_join()"synchronizes memory with respect to other threads" 的函数之一。 ,所以在 pthreads 的情况下你没问题 - 在 pthread_join() 返回后,主线程将看到加入线程对共享内存所做的所有更新。

关于c - 线程的缓存在退出时是否刷新到主内存?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22241294/

相关文章:

iphone - 在 xcode/objective-c 项目中使用 C 文件

c - Strcmp 生成核心转储

c - 如何避免 linux 设备驱动程序中的 copy_from_user 和 copy_to_user

azure - GetDatabase() 调用需要大于 15 的 databaseId

c++ - SDL_MapRGB,如何使用指向指针的指针获取屏幕->格式

python - 使用线程初始化类 (Python)

尽管运行代码来显示菜单,Java 小程序仍显示白屏

c++ - 在Linux上的C++中使用线程应该添加哪个头文件

caching - 有没有办法查看gradle缓存是否已更改

android - Android Volley 请求是否自动缓存?