写点什么

java 并发编程

发布于: 19 小时前

分工、同步、互斥

1 首先为什么会有并发编程

是因为性能

1 并发编程处理的是什么,是任务。

需要对任务进行抽象,拆解,分工执行。

线程模型就是其中的一种模型,java 使用

的就是多线程模型,对应到具体代码我们就是

Thread,Runnable,

Executors

为了更好的提高性能,我们是不是可以采用

池化技术。所以就进一步引出线程池

你怎么设计,核心参数,最大参数,休眠时间,拒绝策略

再引申出数据库、Redis 的池子的设计

2 当某个条件不满足时,线程需要等待,当某个条件满足时,线程需要

被唤醒执行。这就引申出一些工具类,比如说常用的工具类 CountDownLatch,Semaphore,

CyclicBarrier。

3 互斥

既然是多个线程,那肯定有抢资源的问题。如何解决抢资源的问题,那就是加锁。

java 里有哪些锁,synchronized,reentrantlock。那我们有了锁解决竞争问题,

但我们还要提高我们的性能,就有什么读锁、写锁、读写锁。

为了进一步追求性能,大师们又在思考怎么解决,如何不加锁,又不让他出错,

又有了 cas,copy-on-write 等思想。,这就实现了无锁并发。

大师们又在思考,能不能继续抽象出一个模型,于是就有了 JMM 内存模型这个东西

用户头像

优秀工程师 2020.06.14 加入

-热爱编程 -热爱生活 -无所畏惧

评论

发布
暂无评论
java并发编程