继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

《Java并发编程与高并发解决方案》问题汇总 - 持续更新中

2018-04-04 00:39:5131577浏览

Jimin

1实战 · 29手记 · 32推荐
TA的实战

注:这篇手记是为《Java并发编程与高并发解决方案》课程的学员特意准备的。

开篇

首先感谢大家对这门课程的支持。根据大家平时在群里讨论的和问题区提问的内容,我专门做了这篇手记来对【问题】和【解答】做一下整理,并持续更新。希望大家保持这种爱提问多讨论的方式,也希望这篇问题汇总手记能在实际中帮助到大家。

学习完课程,如果感觉课程不错的话,别忘了给课程个好评,谢谢啦~

其他汇总手记

《Java开发企业级权限管理系统》问题汇总

《Java并发编程与高并发解决方案》知识点索引

课程问题整理

1、感觉以前从来没用过多线程并发相关的技术, 学习了课程之后 , 感觉还是不咋会用

这个直接上图片好了:
图片描述
图片描述
图片描述

其实不是没用过,真的只是还没意识到而已。

2、关于CAS中compareAndSwapInt(var1, var2, var5, var5 + var4)的理解
compareAndSwapInt(var1, var2, var5, var5 + var4)换成 compareAndSwapInt(obj, offset, expect, update)能清楚一些,如果obj内的value和expect相等,就证明没有其他线程改变过这个变量,那么就更新它为update,如果这一步CAS没有成功,那就采用自旋的方式继续进行CAS操作。这块是一个CPU指令完成的,依旧是原子操作。

3、CPU缓存及涉及到MESI模型不是很懂
其实这一部分主要属于计算机底层硬件的一些知识,面试基本不会考,核心是希望大家知道课程里要重点介绍的Java内存结构是基于这样的底层做的一些规定,否则Java内存结构直接出来大家会奇怪为什么要引入这么一层规定。
具体的理解可以参考这个回答:http://coding.imooc.com/learn/questiondetail/47261.html

4、课程里线程逃逸不是很懂?
来看这篇问答:http://coding.imooc.com/learn/questiondetail/47686.html

5、FutureTask没感觉比Future好在哪里?
http://coding.imooc.com/learn/questiondetail/48270.html

6、ReentrantReadWriteLock误用可能带来的死锁问题
http://coding.imooc.com/learn/questiondetail/49267.html

7、Fork/Join框架实际使用应该注意的地方
http://www.imooc.com/article/24822

8、对于并发的理解,我不知道该在什么场景使用相关的技术,希望能有具体的场景说明

1)http://coding.imooc.com/learn/questiondetail/53881.html

2) https://coding.imooc.com/learn/questiondetail/52363.html

3) https://coding.imooc.com/learn/questiondetail/51162.html

9、我在调试HashMap源码时,发现和老师讲的不一致

http://coding.imooc.com/learn/questiondetail/53847.html ,这里介绍了调试被影响的一个典型case,也share了一下idea调试的小技巧

10、LongAdder实现的理解

https://coding.imooc.com/learn/questiondetail/56226.html

https://coding.imooc.com/learn/questiondetail/56241.html

打开App,阅读手记
24人推荐
发表评论
随时随地看视频慕课网APP

热门评论

讲解ReentrantReadWriteLock章节时源码中writeLock.lock()应该对应writeLock.unlock()吧

public class LockExample3 {

    private final Map<String, Data> map = new TreeMap<>();

    private final ReentrantReadWriteLock lock = new ReentrantReadWriteLock();

    private final Lock readLock = lock.readLock();

    private final Lock writeLock = lock.writeLock();

     public Data put(String key, Data value) {
        writeLock.lock();
        try {
            return map.put(key, value);
        } finally {
            readLock.unlock();
        }
    }

    }


老师,代码资料和你视频里讲的少了一些,求补充
https://img3.mukewang.com/5cf0a6ac0001220e03960614.jpg
https://img3.mukewang.com/5cf0a6c1000147fe15250696.jpg

感觉股票例子根本没有接触不懂得业务结合讲不明所以,希望多从电商角度出发

查看全部评论