有一个数组(其它的类型类似,hash、list等),有100个线程往这一个数组里追加数据,我需要在追加之前lock住吗?新手,希望详细些!
解决方案 »
- 数据绑定录入,但是无法把数据添加到listview中
- 急求C#和数据库问题。。
- checkBox1.Font.Height = 15;为什么不能附值
- 如何让 usercontrol 实现响应 OnGotFocus 事件?
- 请问在PDA里如何用C#获取桌面的句柄
- [攒分帖]C#读Excel文件
- 强类型数据集与treeview
- 就 是那个用c语言编的即请教高手的题的答案
- 请问Formula one在form窗体上怎样和SQLServer数据库连接??
- 300分,请常炒股或是对泰阳证券网上股票交易分析系统有所了解的兄弟们进来看看
- debug assertion failed
- 怎么将查询出来的数据放到Lable进行显示啊……
如果lock了,这可能会成为多线程的小瓶颈
List<string> list = new List<string>();
lock((list as ICollection).SyncRoot)
{
list.Add("A");
}
临界区
互斥体
信号量c#下关键字搜索:
Mutex
Monitor
AutoResetEvent
A
B C三个线程,A等C,C等B,B等A。
或是常见的串口通讯的死锁。总之就是2个会并发的线程或是可能相互调用的线程,出现了并发而且彼此等待对方先做完某事。这样往往是看到超时的提示或现象,实际上是没可能结束的死锁。