多线程
文章平均质量分 50
renjf_spring
这个作者很懒,什么都没留下…
展开
-
java多线程之Semaphore
Semaphore(信号量)用于限制线程并发的数量(控制同时访问特定资源的线程数量),通过协调各个线程以保证合理地使用公共资源。 Semaphore通过使用计数器来控制对共享资源的访问。 如果计数器大于0,则允许访问。 如果为0,则拒绝访问。 计数器所计数的是允许访问共享资源的许可。 因此,要访问资源,必须从信号量中授予线程许可。 主要方法 void acquire() :从信号量获取一个许可,如果无可用许可前将一直阻塞等待,获取到后减1 void acquire(int permit..原创 2022-04-24 13:14:54 · 528 阅读 · 0 评论 -
java多线程之countDownlatch
CountDownLatch类位于java.util.concurrent包下,利用它可以实现类似计数器的功能。比如有一个任务A,它要等待其他4个任务执行完毕之后才能执行,此时就可以利用CountDownLatch来实现这种功能了(类似join()方法)。public class TreadCountDownLatch { public static void main(String[] args) throws InterruptedException { CountDown原创 2022-04-23 23:28:13 · 578 阅读 · 0 评论 -
java多线程之volatile总结
java内存模型所有的变量都存储在主内存(Main Memory)中。每个线程还有自己的工作内存(Working Memory),线程的工作内存中保存了该线程使用到的变量的主内存的副本拷贝,线程对变量的所有操作(读取、赋值等)都必须在工作内存中进行,而不能直接读写主内存中的变量。不同的线程之间也无法直接访问对方工作内存中的变量,线程之间值的传递都需要通过主内存来完成。可见性:可见性指多个线程操作一个共享变量时,其中一个线程对变量进行修改后,其他线程可以立即看到修改的结果。使用volatile修饰原创 2022-04-20 02:07:56 · 404 阅读 · 0 评论