美文网首页
Java多线程-提纲

Java多线程-提纲

作者: xgangzai | 来源:发表于2019-11-19 22:09 被阅读0次

    多线程系列总结

    一、线程、多线程出现的背景

    解决CPU、内存和IO三者间的速度差异,CPU利用率最大化。

    二、多线程带来的问题

    可见性

    因为CPU缓存,一个线程对某个变量的修改,另一个线程不能立即看到

    原子性

    因为线程调度,一个线程还未执行完语言级的语句,就被让出CPU时间片,另一个线程在旧的数据上继续操作,等先前线程重新被调度执行后,继续那个线程的更新覆盖掉。

    有序性

    编译器优化CPU指令,在单线程中完全没问题,但是在多线程中,可能会导致其他线程读到中间态数据

    三、怎么解决多线程带来的三个问题

    1.解决可见性问题

    volatile 6项Happens-Before规则

    2.解决原子性问题

    使用管程

    3.解决有序性

    还是volatile?防止指令重排

    四、并发编程最佳实践-9个并发编程设计模式

    相关文章

      网友评论

          本文标题:Java多线程-提纲

          本文链接:https://www.haomeiwen.com/subject/jxtnictx.html