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并发编程中需要掌握的知识点,至于具体的代码和应用场景大家可以自行搜索。


  





  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值