《java高并发编程详解》第0集

        昨天晚上终于阅读完《java高并发编程详解》这本书。get到了不少新姿势。这本书是在我看完《深入理解java虚拟机》之后才开始学习的,有些知识点在java虚拟机书中有过讲解,在看编程详解时又复习了一遍,感觉jvm在并发编程的方面确实做了很多优化,从指令集到编程规范,指导我们进行安全高效的并发编程,尤其是Sychronized的不断优化,并发包的使用,还有线程池的集成。无不体现java在并发编程时做的努力。

        并发和并行两个概念是java编程中经常遇到的概念。多线程同时运行的条件下,如果有资源争用,那么就是并发,否则就是并行。

       书中详细讲解了线程和进程的关系,讲解了线程的5大状态:new runnable running blocking dead。

五种状态之间有状态转换。而blocking和running状态的线程可以被打断,即通过调用 Thread.interrrupt()的方法主动中断睡眠或者资源等待。

        Thread的yield(),interrrupt(),sleep(),join()方法是线程自带的方法,分别是放弃锁资源,cpu资源;中断线程当前状态,睡眠(不放弃资源),等待当前线程执行完之后执行(放弃资源)。

        对象Object的wait(),notify(),notifyAll()方法,wait()方法是当前线程放弃锁进入对象的waitSet,notify是放弃锁,并唤醒waitSet内的一个线程,notifyAll()则是唤醒所有waitSet的线程。

        在java虚拟机就讲过jvm内存模型和jvm内存分布;并发编程主要讲的是内存模型,线程私有内存和线程公共内存之间的load和store操作步骤。jvm编程要求了并发的时候要注意三大要素:原子行,有序性,可见性。

        volatile 和sychronized的区别在于 volatile 只能保证有序性和可见性,没有保证原子性,所以作为严格要求的并发,volatile其实不能满足要求。

        另外,书中还讲了一些并发的开发模式,生产者消费者模式/per-thread-message模式/流水线模式/activeObjects模式/event-bus模式/event-driven-architve模式。这些将在接下来的文章中讲解

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值