标签 java 下的文章

Semaphore(信号量)了解吗?Semaphore(信号量)用于控制同时访问特定资源的线程数量,它通过协调各个线程,以确保公共资源的合理使用。为了更好地理解,我们可以举个停车场的例子。在现实生活中,停车位是有限的,只能容纳一定数量的车辆。当停车场还有空位时,指示牌会显示绿灯和剩余车位数量,车辆可以进入停车场。但是,如果停车位已满,指示牌会显示绿灯和数字0,车辆需要等待。当有车辆离开停车场时,指示牌会再次显示绿灯和可用的车位数量,等待的车辆可以进入停车场。

- 阅读剩余部分 -

原子操作类了解多少?当程序更新一个变量时,如果多线程同时更新这个变量,可能会导致不符合期望的结果,例如变量 i 的初始值为 1,线程 A 更新 i+1,线程 B 也更新 i+1,最终 i 的值可能不是期望的 3,而是 2。这是由于线程不安全的更新操作导致的。为了解决这个问题,一般可以使用 synchronized 关键字来保证多线程不会同时更新变量 i。

- 阅读剩余部分 -