简单问题,泛型是线程安全吗?
如题!
我以前的时候会这样写
private ArrayList arr= ArrayList.Synchronized(new ArrayList());
现在换成
private List<string> list = new List<string>();
是线程安全的吗?
还有
private Hashtable HTTcpCar = Hashtable.Synchronized(new Hashtable());
现在换成
Dictionary<string, ClientState> d = new Dictionary<string, ClientState>();
是线程安全的吗?
如果不是,我用泛型的时候怎么实现线程安全?
------解决方案-------------------- 使用lock(ArrayList.SyncRoot )进行同步
------解决方案--------------------不是。
------解决方案--------------------公共静态成员是线程安全的。但不能保证任何实例成员是线程安全的
------解决方案--------------------是不是线程安全跟范型没什么关系,关键是看你的方法是怎么写的。
------解决方案--------------------加锁就可以了
------解决方案--------------------楼上和楼上的楼上说得很对!
重点在于你的方法!
在线程中锁定数据就安全了