Semaphore(信号量)
允许多个线程同时访问一个共享资源
通过使用一个计数器来控制对共享资源的访问,如果计数器大于0,就允许访问,如果等于0,就拒绝访问。计数器累计的是“许可证”的数目,为了访问某个资源。线程必须从信号量获取一个许可证。
源码
static void Main(string[] args)
{
ZeroEvenOdd zeroEvenOdd = new ZeroEvenOdd(6);
Action<int> action = x => {
Console.Write(x); };
Thread t1 = new Thread(()=>
{
try
{
zeroEvenOdd.Zero(action);
}
catch (Exception e)
{
throw;
}
});
Thread t2 = new Thread(()=>
{
try
{
zeroEvenOdd.Even(action);

本文介绍了如何使用C#的Semaphore类来实现线程间的交替操作,具体场景为交替打印奇偶数。信号量作为一种同步机制,通过控制许可证数量限制对共享资源的访问。
最低0.47元/天 解锁文章
2440

被折叠的 条评论
为什么被折叠?



