c语言使用semaphore,c++ semaphore 使用详解
直接发布代码示例:
//现在有10个人在过桥
//但是一座桥只能支撑五个人,多了桥就塌了。
公共静态空信号测试()
{
var semaphore=new semaphoresim(5);
for(int I=1;i=10我)
{
线程。睡眠(100);//在桥上排队
var指数=I;//定义索引以避免关闭。
任务。运行(()=
{
旗语。wait();
尝试
{
控制台。WriteLine($ 第{index}个人正在过桥。);
线程。睡眠(5000);//模拟过桥所需的时间
}
最后
{
控制台。WriteLine($ 第{index}个人过桥了。);
旗语。发布();
}
});
}
}运行SemaphoreTest方法以获得以下输出。
从代码中的注释可以看出,SemaphoreSlim类的作用是控制访问一个资源的线程数量。
代码里的资源是桥,线程是过桥的人。10个人要过桥,代表10个进程访问资源。但是桥是有承载极限的,要控制过桥人数,必须有人等。
结合代码和输出信息可以理解SemaphoreSlim的功能。
转载请联系作者取得转载授权,否则将追究法律责任。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。