java初识并发编程--并发编程知识的大体框架

参考文献《java编程思想4》

根据我自己的理解,并发就是使用多线程来达成一个目的,之所以用多线程,是因为多个人干活总比一个人干活干的多,干的快,但是速度快的同时又会出现一些问题,这就是老生常谈的并发问题,下面来整理下我理解中并发这一块需要去学习理解的几大块内容。

一 多线程的几种实现方式

  1 继承Thread类,重写run方法

  2 实现Runnable接口,重写run方法

  3 通过Callable和Future Task创建线程

  4 通过线程池创建

二 解决并发问题的方法

  1 使用synchronized关键字

  2 显示使用java.util.concurrent.locks包下的lock类

  3 利用原子性(但是书中说这个方法如果你不是并发大神还是选择放弃吧)

  4 使用java.util.concurrent.atomic包下的原子类来解决特定的并发问题

  5 使用线程本地存储--ThreadLocal(这种方式是根除了变量的共享)

  6 使用GAS算法,想了解的请看下我的另一篇博客concurrentHashMap源码解析带来的一系列问题(CAS,volatile ,current包,atomic包)

三 线程间相互协作的集中方式

  1 wait() 与notify()/ notifyAll()

  2 condition对象的await()与signal()/signalAll()方法

  3 java.util.concurrent包下的阻塞队例如ArrayBlockingQueue等


这三个问题是我目前认为的java并发编程中需要掌握的知识点,至于具体的代码和应用场景大家可以自行搜索。


  





猜你喜欢

转载自blog.csdn.net/weixin_41574643/article/details/80076835