慕课网至今听过的最好的课程,一上午过来对一直摸不清的ThreadLocal有了蛮深刻的印象,说话非常由条理,希望老师能有更多的课程!谢谢!
最赞回答 / qq_Forever浅唱此生_0
这个HashSet和HashMap的多线程调用时是一样的风险,在扩容时有可能导致死循环,所以要用同步的容器或者同步代码块去调用“添加”的方法
2020-02-14
讲师回答 / 求老仙
秋田君说的也很不错, 我这里补充下, Map<Thread, T>这种结构,hash表冲突会很严重,举个例子。map.put(thread1, 100);map.put(thread1, 200);map.put(thread1, 300);你发现没有,一个map put了三个值,那取值的时候, 怎么办呢?
2020-02-10
已采纳回答 / 求老仙
锁发生在寄存器里是很快的,锁发生在内存里要看(如果发生在CPU的L1 cache上,就很快),如果发生在L2,L3或者内存里就慢很多;锁如果发生在IO上(比如读硬盘就非常慢)。所以缩小范围,要看缩小了什么,如果缩小了I/O,那就非常有必要了。 我用Sleep(I/O),所谓I/O就是触发中断的东西,来替代真实的I/O场景(比如读数据库,读redis等)。寄存器速度约等于(l1),< l2, < l3 <<<<< 内存(这里大概有几十倍到百倍速度差距了) <...
2020-02-07