Semaphore 主要用于限定每个执行周期只允许一定数目的线程执行操作,从而保证虚拟机不因为无限制地使用线程资源导致系统崩溃。实际应用时,在方法内部的数据访问会导致多线程单竞争,因此要注意数据隔离。参考Semaphore(二)
使用线程A进行测试
执行结果如下:
结论:
因为初始化时,指定了permits=2,所以每周期执行时,只会同时有两个线程运行,其它线程等待。
Semaphore 主要用于限定每个执行周期只允许一定数目的线程执行操作,从而保证虚拟机不因为无限制地使用线程资源导致系统崩溃。实际应用时,在方法内部的数据访问会导致多线程单竞争,因此要注意数据隔离。参考Semaphore(二)
使用线程A进行测试
执行结果如下:
结论:
因为初始化时,指定了permits=2,所以每周期执行时,只会同时有两个线程运行,其它线程等待。