标签 Java常见问题 下的文章

线程池提交execute和submit有什么区别?execute 用于提交不需要返回值的任务threadsPool.execute(new Runnable() { @Override public void run() { // TODO Auto-generated method stub } });submit()方法用于提交需要返回值的任务。线程池会返回一个future类型的对象,通过这个 future对象可以判断任务是否执行成功,并且可以通过future的get()方法来获取返回值

- 阅读剩余部分 -

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

- 阅读剩余部分 -