java并发
yozzs
士不可以不弘毅,任重而道远
展开
-
线程通信的一百种写法
线程通信是多线程应用开发中最常见的操作,除了wait notify方法,jdk提供了多种多样的api可以实现线程通信。原创 2020-07-01 14:45:12 · 273 阅读 · 0 评论 -
线程生命周期
线程有5个状态:NEW(新建)、RUNNABLE(就绪)、RUNNING(运行)、BLOCKED(阻塞)、TERMINATED(死亡),他们之间的转换如下图: NEW状态 此状态只创建了Thread对象,调用start方法之前,该线程不存在。 NEW状态通过start方法进入RUNNABLE状态 RUNNABLE状态 此状态真正在JVM中创建了线程,它具备执行的资格但未执行,而是在等...原创 2018-09-04 17:41:24 · 1633 阅读 · 0 评论 -
深入理解synchronized关键字
synchronized关键字提供一种锁机制,能够确保变量的互斥访问,从而防止数据不一致问题的出现。原创 2018-09-06 11:12:03 · 1907 阅读 · 0 评论 -
wait和notify方法详解
一、wait和notify方法 wait方法和notify方法是Object类的方法,用以支持线程间通信。 1、wait方法 以下是wait方法的三个重载方法: public final void wait() throws InterruptedExeception public final void wait(long timeout) throws InterruptedExe...原创 2018-09-06 23:19:43 · 2430 阅读 · 0 评论 -
生产者消费者模式
生产者消费者模式原创 2018-09-06 23:21:22 · 1858 阅读 · 0 评论 -
深入理解volatile关键字
volatile是一个非常重要的关键字,用来修饰实例变量和类变量,以保证线程安全。想理解它的底层原理需先认识JVM内存模型和CPU缓存模型相关知识。原创 2018-09-10 23:56:37 · 860 阅读 · 0 评论 -
JDK源码阅读,手写AtomicInteger
关于java并发的三大特性,原子性、可见性、有序性关乎线程安全问题的基本原理,JDK提供java.util.concurrent.atomic包来对数据类型进行包装,以实现各数据类型的原子性操作原创 2019-02-24 16:40:23 · 226 阅读 · 0 评论 -
池化技术原理,手写数据库连接池
池化技术在后端开发中应用非常广泛,有数据库连接池,线程池,对象池,常量池等。池化技术的出现是为了提高性能。实际就是对一些使用率较高,且创建销毁比较耗时的资源进行缓存,避免重复地创建和销毁,做到资源回收利用原创 2019-07-01 12:54:45 · 957 阅读 · 0 评论