java多线程怎么控制并发数 怎么实现线程排队

起首是近似的案例,好比说列队买票的问题,假若有20小我一路买票,只有两个窗口,怎么实现

阐发:

人=线程

2个窗口--资本

在窗口买票=线程正在执行

分开线程执行完毕

期待买票=线程梗阻

东西/原料

  • 旌旗灯号量
  • Semaphore

方式/步调

  1. 1

    起首明白旌旗灯号量Semaphore的用法,然后新建一个项目,new-->file-->class,随意定名,此处定名为semaphoreDemo

  2. 2

    起首起头一个线程MyTask,实现接口,然后在此中界说窗口买票的流程,本家儿要有进入,买完了,分开,然后释放旌旗灯号量,让下一个进入

  3. 3

    然后设心猿意马一个旌旗灯号量,本家儿如果执行函数,此处界说窗口个数,然后界说线程池ExecutorService,轮回执行这20小我

  4. 4

    最后经由过程main函数挪用execute函数进行列队问题,起头列队线程

  5. 5

    在打印中可以看到两个线程在并发执行,剩下的人处于列队状况,只有上一个执行完了下一个才执行

注重事项

  • 线程旌旗灯号量semaphore,本家儿要用于节制并发数
  • 发表于 2018-04-27 00:00
  • 阅读 ( 1037 )
  • 分类:其他类型

你可能感兴趣的文章

相关问题

0 条评论

请先 登录 后评论
admin
admin

0 篇文章

作家榜 »

  1. xiaonan123 189 文章
  2. 汤依妹儿 97 文章
  3. luogf229 46 文章
  4. jy02406749 45 文章
  5. 小凡 34 文章
  6. Daisy萌 32 文章
  7. 我的QQ3117863681 24 文章
  8. 华志健 23 文章

联系我们:uytrv@hotmail.com 问答工具