![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
多线程
huangjingjinglll
一起加油(ง •̀_•́)ง
展开
-
线程池
功能创建线程变成从线程池获得空闲线程,关闭线程变成了向线程池归还线程。线程的创建和销毁都需要时间,线程池可以避免系统频繁地创建和销毁。五大线程池Executors类是线程池工厂,ThreadPoolExecutor类实现该Executor接口,可以调度任何Runnable对象有以下工厂方法newFixedThreadPool(int nThreads)返回ExecutorServ...原创 2019-09-12 14:29:07 · 72 阅读 · 0 评论 -
Synchronized锁
为何要设计锁:多线程编程中,多个线程同时访问同一个共享可变资源,并发访问会导致线程安全问题,锁用来保证线程安全。内存模型原子操作Synchronize锁不加锁:不能保证代码段的原子性加锁:保证代码段逻辑的原子性。序列化访问临界资源,同一时刻只能有一个线程访问临界资源(同步互斥访问)锁定义:显示锁:reentrantLock,ReentrantReadWriteLock,手动...原创 2019-09-12 16:45:10 · 134 阅读 · 1 评论 -
JMM内存模型和Volatile锁
早期:加锁在线程1还没有给解锁之前,别的线程不能用,其实算是串行了,当然没有缓存JMM 数据原子操作JMM缓存不一致问题现在:MESI缓存一致性协议cpu和主内存交互:经过总线线程各自一起读取自己需要的,并行运行[外链图片转存失败(img-t1LJkT5S-1568279245775)(C:\Users\huang\AppData\Roaming\Typora\typora-u...原创 2019-09-12 17:09:47 · 89 阅读 · 0 评论