首页 新闻 搜索 专区 学院

Hashtable 线程安全的能不能多个读线程与一个写线程并行执行

0
悬赏园豆:10 [已解决问题] 解决于 2015-03-21 09:15

Hashtable 是线程安全的,可由多个读取器线程或一个写入线程使用。多线程使用时,如果任何一个线程执行写入(更新)操作,它都不是线程安全的。 

这是MSDN上面的原话,前面说可以多个读一个写,后面又说是不安全的。

1:到底能不能多个读线程与一个写线程并行执行?

2:假如是能够多个读线程与一个写线程并行执行,那么这种线程安全是因为内部有加锁呢还是它的结构允许没有锁的情况下读写并行?

大芝麻的主页 大芝麻 | 初学一级 | 园豆:4
提问于:2015-03-20 09:50
< >
分享
最佳答案
0

可由  多个读取器线程 或 一个写入线程使用。

请问你如何理解这段话的意思。

收获园豆:4
爱编程的大叔 | 高人七级 |园豆:30753 | 2015-03-20 11:26

额,果然是大侠。。。关键是这个或字我忽略了,这么看来哈希表和链表在多线程处理上没什么区别是吗

大芝麻 | 园豆:4 (初学一级) | 2015-03-20 11:34
其他回答(2)
0

回答第一个问题 能

第二个问题并不确定,我猜测的是内部有锁机制

收获园豆:3
最佳损友。 | 园豆:103 (初学一级) | 2015-03-20 09:54
0

Hashtable内部实现用了互斥锁保证了理论上的线程安全,但用的不好依然线程不安全。参考这里

收获园豆:3
JeffWong | 园豆:2021 (老鸟四级) | 2015-03-20 13:52
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册