日期:2014-05-16  浏览次数:20808 次

多线程操作GHashTable时,是否需要加锁
多线程操作GHashTable时,是否需要加锁?就像是链表一样。

我没有从官方文档中得到明确的答复,
看到的示例代码都是单线程的,
我认为需要加锁,
是这样吗?

------解决方案--------------------
引用:
是否加锁 取决于是否有多线程要同时使用共享资源。
如果一个线程只写,一个线程只读,则可以不用加。
但是如果有多个线程进行读或写操作,则必须加。


如果一个线程只写,一个线程只读,则可以不用加。
========
这样是不行滴,写到一半时,读出来的东西会有问题的。

只读,或者确定读写不会同时进行的话,才可以不加锁。


GHashTable本身是不提供线程同步的,需要自己进行同步。