度量快速开发平台-专业、快速的软件定制快开平台
标题:
C#多线程的用法9-Semaphore
[打印本页]
作者:
Adam丶鱼
时间:
2020-7-21 17:50
标题:
C#多线程的用法9-Semaphore
private static void MultiThreadSynergicWithSemaphore()
{
//0表示创建Semaphore时,拥有可用信号量数值
//1表示Semaphore中,最多容纳信号量数值
Semaphore semaphore = new Semaphore(0, 1);
Thread thread1 = new Thread(() =>
{
//线程首先WaitOne等待一个可用的信号量
semaphore.WaitOne();
//在得到信号量后,执行下面代码内容
Console.WriteLine("thread1 work");
Thread.Sleep(5000);
//线程执行完毕,将获得信号量释放(还给semaphore)
semaphore.Release();
});
Thread thread2 = new Thread(() =>
{
semaphore.WaitOne();
Console.WriteLine("thread2 work");
Thread.Sleep(5000);
semaphore.Release();
});
thread2.Start();
thread1.Start();
//因在创建Semaphore时拥有的信号量为0
//semaphore.Release(1) 为加入1个信号量到semaphore中
semaphore.Release(1);
}
作者:
Adam丶鱼
时间:
2020-7-21 17:52
作者:
张兴康
时间:
2020-7-21 18:56
作者:
fteair
时间:
2020-7-22 14:14
欢迎光临 度量快速开发平台-专业、快速的软件定制快开平台 (http://plat.delit.cn/)
Powered by Discuz! X3.2