线程
郑鹏川
不积跬步,无以至千里
展开
-
Semaphore解析
1.public void acquire() 2.public void acquireUninterruptibly()原创 2021-06-03 16:14:56 · 273 阅读 · 0 评论 -
并发的世界(线程的运行过程)
线程的运行过程线程的所有状态都在Thread.State中定义public enum State { NEW, RUNNABLE, BLOCKED, WAITING, TIMED_WAITING, TERMINATED} NEW状态表示刚刚创建的线程,这种线程还没开始执行。等到线程的start()方法调用时,才表示线程开始执行。 当线程开始执行时,处于RUNNABLE状态,表示线程所需的一切资源都已经准备好了。 如果线程在执...原创 2021-05-20 15:43:12 · 118 阅读 · 0 评论 -
不可重入锁和可重入锁分析
1.基本概念 锁其实就是把所需要的代码块,资源,或数据锁上,在操作他们的时候只允许一个线程去做操作。最终结果是为了保证cpu计算结果的正确性。 死锁:两个线程由于争抢临界资源或彼此通信而造成的一种阻塞现象。 可重入锁:也叫做递归锁,指的是同一线程外层函数获得锁之后 ,内层递归函数仍然有获取该锁的代码,但不受影响。 最简单两种可重入锁:Synchronized和ReenTrantLock。Synchronized是依赖于JVM实现的,而ReenTrantLock是JDK实现的...原创 2021-03-01 16:21:54 · 267 阅读 · 3 评论