我有四个线程,主线程(从ArrayList中读对象的值)、插入新对象入队列线程、更新队列中对象值线程、删除队列中对象线程。他们执行时间是随机的,只是保证队列修改、更新、插入、删除是正确的。我这样对吗?
private ArrayList list = new ArrayList();// 读取对象函数
Read()
{
lock(list)
{
for(int i = 0; i < list.count; i++)
{
// 读对象,代码省略
}
}
}/// 更新对象线程启动函数
Update()
{
lock(list)
{
for(int i = 0; i < list.count; i++)
{
// 读对象,本改变符合要求的对象的值代码省略
}
}
}/// 删除对象线程启动函数Delete()
{
lock(list)
{
for(int i = 0; i < list.count; i++)
{
// 读对象,本改变符合要求的对象的值代码省略
}
}
}/// 插入对象线程启动函数
Insert()
{
lock(list)
{
A a = new A();
list.Add(a);
}
}
//Monitor.Pulse(this);线程使用资源//Monitor.Exit(this); 释放