文章分类 - 多线程
摘要:2.概念 countDownLatch这个类使一个线程等待其他线程各自执行完毕后再执行。 是通过一个计数器来实现的,计数器的初始值是线程的数量。每当一个线程执行完毕后,计数器的值就-1,当计数器的值为0时,表示所有线程都执行完毕,然后在闭锁上等待的线程就可以恢复工作了。 countDownLatch
阅读全文
摘要:java编程语言允许线程访问共享变量,为了确保共享变量能被准确和一致的更新,线程应该确保通过排他锁单独获得这个变量。Java语言提供了volatile,在某些情况下比锁更加方便。如果一个字段被声明成volatile,java线程内存模型确保所有线程看到这个变量的值是一致的。 一句话即, volati
阅读全文
摘要:2.线程池(3+7+4)为什么会有池? 提高程序的性能,提高使用率,降低消耗。 3种方法(注意,阿里开发手册不允许使用这三种方法,容易OOM) Executors 可以有三种创立线程池的方法。 public static void main(String[] args) { // Executors
阅读全文
摘要:// java能够创建线程吗? 不能! // 新建 NEW, // 运行 RUNNABLE, // 阻塞 BLOCKED, // 等待 WAITING, // 延时等待 TIMED_WAITING, // 终止! TERMINATED; /* * JUC之后的操作 * Lock锁 + lambda表
阅读全文
摘要:Synchronized 和 Lock 区别 1、Synchronized 是一个关键字、Lock 是一个对象 2、Synchronized 无法尝试获取锁,Lock 可以尝试获取锁,判断; 3、Synchronized 会自动释放锁(a线程执行完毕,b如果异常了,也会释放锁),lock锁是手动释放
阅读全文