线程如何将其写入矩阵的不同单元中

| 我有一个全局矩阵(类型为vector >),我需要几个线程才能按照我所说的方式写入其中。 起初,我考虑只使用一个互斥锁,因为我担心竞争条件(access + write可能不是原子的) 然后,我使用互斥矩阵。我对此不太确定。似乎是同样的问题。 你能帮我吗?如果需要,我会添加更多详细信息。 谢谢     
已邀请:
        您只需要一个互斥锁即可保护被多个线程访问的对象,其中至少有一个线程会修改该对象。 如果在任何线程访问矩阵之前(例如在启动线程之前)调整了矩阵的大小,则只有在多个线程访问同一单元格时才需要互斥量。如果您的线程正在访问不同的单元,则只要它们都不调整矩阵的大小,一切就可以了。 如果一个线程写入一个单元,而另一个线程从同一单元读取,则两个线程在访问该单元之前必须锁定相同的互斥体。如果两个线程写入同一单元,则两个线程必须再次锁定相同的互斥锁。该互斥锁可以与用于其他单元的互斥锁不同,也可以是相同的互斥锁。 如果一个线程修改了矩阵结构,而其他线程正在访问矩阵,则所有涉及的线程必须锁定同一互斥锁。这可以是与用于单个单元格的任何互斥锁不同的互斥锁,也可以是相同的互斥锁。     

要回复问题请先登录注册