起首是近似的案例 , 好比说列队买票的问题 , 假若有20小我一路买票 , 只有两个窗口 , 怎么实现
阐发:
人=线程
2个窗口--资本
在窗口买票=线程正在执行
分开线程执行完毕
期待买票=线程梗阻
需要这些哦
旌旗灯号量
Semaphore
方式/
1起首明白旌旗灯号量Semaphore的用法 , 然后新建一个项目 , new-->file-->class , 随意定名 , 此处定名为semaphoreDemo
文章插图
2起首起头一个线程MyTask , 实现接口 , 然后在此中界说窗口买票的流程 , 本家儿要有进入 , 买完了 , 分开 , 然后释放旌旗灯号量 , 让下一个进入
文章插图
3然后设定一个旌旗灯号量 , 本家儿如果执行函数 , 此处界说窗口个数 , 然后界说线程池ExecutorService , 轮回执行这20小我
文章插图
4最后经由过程main函数挪用execute函数进行列队问题 , 起头列队线程
文章插图
5【java多线程怎么控制并发数 怎么实现线程排队】在打印中可以看到两个线程在并发执行 , 剩下的人处于列队状况 , 只有上一个执行完了下一个才执行
文章插图
注重事项线程旌旗灯号量semaphore , 本家儿要用于节制并发数
以上内容就是java多线程怎么控制并发数 怎么实现线程排队的内容啦 , 希望对你有所帮助哦!
推荐阅读
- java多线程怎么完成同步屏障 聚集齐了才开始
- 怎么把照片横向拼接
- 篮球比赛时间 篮球比赛多长时间
- 世界上最大的蜈蚣 世界上最大的蜈蚣有多长
- 如何在button上添加attr属性值
- 139邮箱通讯录如何导入/导出联系人
- 人口最多的少数民族人口最多的少数民族是什么族
- BlueStacks蓝叠上怎么安装微信应用,如何多开
- Matlab2016怎么建立使用多维数组
- 微信找不到城市服务怎么办