并发编程
文章平均质量分 87
java.雅玲
IT互联网
展开
-
Java线程原语弃用
为什么是线程停止不赞成?因为它本质上是不安全的。停止线程会使其解锁其锁定的所有监视器。(当ThreadDeath异常在堆栈上传播时,监视器将被解锁。)如果以前受这些监视器保护的任何对象处于不一致状态,其他线程现在可能会以不一致的状态查看这些对象。据说这些物品被损坏了。当线程对损坏的对象进行操作时,可能会导致任意行为。这种行为可能是微妙的,很难被发现,也可能是被宣布的。与其他未经检查的异常不同,ThreadDeath无声地杀死线程;因此,用户没有警告他的程序可能已损坏。腐败在实际损害发生后的任何时候都会显现原创 2021-02-02 22:42:10 · 128 阅读 · 0 评论 -
Java的内置锁和显式锁
synchronized and Reentrantlock多线程编程中,当代码需要同步时我们会用到锁。Java为我们提供了内置锁(synchronized)和显式锁(ReentrantLock)两种同步方式。显式锁是JDK1.5引入的,这两种锁有什么异同呢?是仅仅增加了一种选择还是另有其因?本文为您一探究竟。内置锁Java内置锁通过synchronized关键字使用,使用其修饰方法或者代码块,就能保证方法或者代码块以同步方式执行。使用起来非常近简单,就像下面这样:// synchronized关键原创 2021-01-22 22:11:33 · 131 阅读 · 0 评论 -
java — Thread之CountDownLatch的使用
CountDownLatch的简单使用CountDownLatch的简单介绍:CountDownLatch类是一个同步计数器,构造时传入int参数,该参数就是计数器的初始值,每调用一次countDown()方法,计数器减1,计数器大于0 时,await()方法会阻塞程序继续执行CountDownLatch是一个倒计数的锁存器,当计数减至0时触发特定的事件。CountDownLatch被用来同步一个或多个任务,强制它们等待由其他任务执行的一组操作完成。你可以向CountDownLatch对象设置一个原创 2021-01-20 22:18:53 · 419 阅读 · 0 评论