C多线程并发解决方法

C多线程并发如果说我有线程1,去写入某一内存区域,线程2,也是这块内存区域.线程3,读此内存区域.问题:有几种

C多线程并发
如果说我有线程1,去写入某一内存区域,
线程2,也是这块内存区域.
线程3,读此内存区域.

问题:有几种办法,如何实现.比较一下哪个更省CPU.
[解决办法]
读多写少用读写锁, 否则互斥锁, 这还用问吗.
[解决办法]
写操作进行同步
[解决办法]
google 信号量--读写者