首先是近似的案例,好比说列队买票的问题,假若有20小我一路买票,只有两个窗口,怎么实现
阐发:
人=线程
2个窗口--资本
在窗口买票=线程正在执行
分开线程执行完毕
期待买票=线程梗阻
首先明白旌旗灯号量Semaphore的用法,然后新建一个项目,new-->file-->class,随意定名,此处定名为semaphoreDemo
首先起头一个线程MyTask,实现接口,然后在此中界说窗口买票的流程,本家儿要有进入,买完了,分开,然后释放旌旗灯号量,让下一个进入
然后设定一个旌旗灯号量,本家儿如果执行函数,此处界说窗口个数,然后界说线程池ExecutorService,轮回执行这20小我
最后经由过程main函数挪用execute函数进行列队问题,起头列队线程
在打印中可以看到两个线程在并发执行,剩下的人处于列队状况,只有上一个执行完了下一个才执行
0 篇文章
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!