Java并发编程

来源:互联网 发布:linux 使用ftp 编辑:程序博客网 时间:2024/05/29 14:02

1. Volatile


2. Synchronized

  Java中的每一个对象都可以作为锁

   对于同步方法,锁是当前实例对象。

  • 对于静态同步方法,锁是当前对象的Class对象。
  • 对于同步方法块,锁是Synchonized括号里配置的对象。

3.Java线程池


4. ConcurrentHashMap


5. 原子操作


6. ConcurrentLinkedQueue


7. Java阻塞队列


8. Fork/Join框架


9.CopyOnWrite容器

java并发包中提供两个:CopyOnWriteArrayList和CopyOnWriteArraySet容器。

适用场景: 读多写少的并发场景。比如白名单,黑名单,商品类目的访问和更新场景。

存在两个问题,即内存占用问题(进行写操作的时候,内存里会同时驻扎两个对象的内存)和数据一致性(只能保证数据的最终一致性,不能保证数据的实时一致性)问题。

10. 生产者和消费者

生产者和消费者模式能够解决大部分的并发问题,该模式通过平衡生产线程和消费线程之间的工作能力来提高程序处理数据的速度。


线程池就是一个生产者和消费者模式的实现。