gpt4 book ai didi

并发: How to handle a single function(set of instruction) running in two threads on two different cores simultaneously?

转载 作者:行者123 更新时间:2023-11-30 19:01:46 25 4
gpt4 key购买 nike

假设有一个函数(指令集 foo())可以操作一些数据(全局)。每个执行此函数(foo())的进程都会生成两个线程。当这两个线程在两个不同的处理器核心上同时执行时,如何处理并发和数据保护(竞争条件)?

对于并发和数据保护,对于上述情况,单核和多核处理器的主要区别是什么?

最佳答案

这是一个非常广泛的问题。有不同的技术可以解决这个问题。从用户的角度来看,最基本的想法是获取全局数据的锁(例如:POSIX 中的互斥锁),执行一些更新并释放锁。即使您获取了锁,其他线程读取相同数据时也可能会出现不一致的问题(请参阅 Readers-writers )。因此,您必须访问读锁(请参阅 here )。这是处理并发的基本思想。

目前,多核系统或单核线程的并发和数据保护是相似的,因为所有核心都可以看到所有内存(除了本地缓存)。如果实现适当的锁定机制,那么操作系统将负责缓存一致性。基本上,从用户的角度来看,单核和多核中的线程是相同的。

关于并发: How to handle a single function(set of instruction) running in two threads on two different cores simultaneously?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57310108/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com