首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

VB.NET并行与分布式编程(六)-线程与内核同步[13]

2012-08-25 
VB.NET并行与分布式编程(6)-线程与内核同步[13]??这个代码有几个地方需要注意1、??? 定义一个互斥对象,用于

VB.NET并行与分布式编程(6)-线程与内核同步[13]


?

?这个代码有几个地方需要注意

1、??? 定义一个互斥对象,用于解决生产线程和消费线程操作mycounts变量的同步问题
??? Dim mymutex As New Mutex

2、主线程执行完毕,关闭信号量
??????? Console.WriteLine(Now.ToLongTimeString & "主线程执行完毕!")
??????? mysemaphore.Close()

3、将对mycounts变量的操作放在互斥体的保护下

??????????? mymutex.WaitOne()
??????????? mycounts += 1
??????????? Console.WriteLine("{0}号生产者线程运行,目前数量为:{1}", Thread.CurrentThread.ManagedThreadId, mycounts)
??????????? mymutex.ReleaseMutex()

?

其中,??????????? mymutex.WaitOne()等待,而??????????? mymutex.ReleaseMutex()释放

?

?

此外,WaitHandle.SignalAndWait 方法在解决复杂的同步问题,尤其是防止死锁很有帮助 ,对于同时操作信号量和互斥体,可以使以原子方式释放互斥体并在事件上等待。WaitHandle.SignalAndWait 方法向一个WaitHandle 发出信号并等待另一个,如果信号和等待都成功完成,则为 true;如果等待没有完成,则此方法不返回,第一个参数为信号,第二个参数为等待


热点排行