Java并发编程
文章平均质量分 92
solargen
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
【跟solargen一起学习Java并发编程】Semaphore的使用(二)
无参方法tryAcquire()的作用是尝试地获取1个许可,如果获取不到则返回false,此方法通常与if语句结合使用,其具有无阻塞的特点。所谓的公平信号量是获得锁的顺序与线程启动的顺序有关,但不代表100%地获得信号量,仅仅是在概率上能得到保证。线程A首选进入,线程B未获得许可,线程A正在运行,但是线程B执行了else,没有等待获取许可。有些时候,获得许可的顺序与线程启动的顺序有关,这时信号量就要分为公平与非公平的。我们可以看到,4线程比1线程先启动,但是1线程比4线程先获得信号量。原创 2025-07-29 14:27:13 · 1755 阅读 · 0 评论 -
【跟solargen一起学习Java并发编程】Semaphore的使用(一)
Semaphore(信号量)是一种用于控制线程并发数量的同步工具,通过限制同时执行的线程数量来优化CPU资源使用。文章通过Java代码示例演示了Semaphore的基本用法:当构造参数permits=1时实现线程同步执行;当permits>1时允许多个线程并行执行,但可能引发线程安全问题。还介绍了acquire(int permits)方法可以动态消耗多个许可,以及对应的release方法释放许可。示例中创建10个线程,每个消耗2个许可,展示了Semaphore控制并发线程数量的效果。原创 2025-07-23 18:01:44 · 1595 阅读 · 0 评论
分享