我应该在线程之间的共享结构上使用访问控制吗?

时间:2013-03-14 18:52:38

标签: c multithreading concurrency pthreads posix

我正在使用pthread库在C中编写一小段软件。 我有一堆线程需要对包含动态允许的char数组的共享结构的写访问权限但是我可以保证两个不同的线程永远不会尝试访问该数组的相同元素。我的问题是:我应该使用信号量或互斥量之类的东西,还是不是必要的?

3 个答案:

答案 0 :(得分:0)

在您的情况下,线程之间不共享数据,并且由于线程之间不共享数据,因此不需要同步机制。

答案 1 :(得分:0)

嗯,我觉得你自己回答了这个问题!

互斥锁的目的是防止某些资源上不同线程的并发访问。如果你能保证通过设计你的线程永远不会同时访问(读或写)相同的内存区域,那么你就不需要互斥保护了。

答案 2 :(得分:0)

如果您的线程只读取信息,则不需要锁定。

如果你的线程修改了其他线程看不到的信息,则不需要锁定。

如果有一个地方可以被一个线程修改并被其他人使用,则需要使用互斥锁。