摘要:
原创转载请注明出处:https://www.cnblogs.com/agilestyle/p/11426981.html ThreadPoolExecutor底层方法参数: @param corePoolSize: the number of threads to keep in the pool, 阅读全文
摘要:
原创转载请注明出处:https://www.cnblogs.com/agilestyle/p/11426916.html Java中有几种方法可以实现一个线程? 继承Thread类(不支持多继承) 实现Runnable接口 实现Callable接口 线程池ThreadPoolExecutor Not 阅读全文
摘要:
原创转载请注明出处:https://www.cnblogs.com/agilestyle/p/11426833.html SynchronizedMap和ConcurrentHashMap有什么区别? ConcurrentHashMap后者具有更高的并发 SynchronizedMap锁的是整个对象 阅读全文
摘要:
原创转载请注明出处:https://www.cnblogs.com/agilestyle/p/11426573.html 线程状态 NEW RUNNABLE BLOCKED WAITING TIMED_WAITING TERMINATED 参考JDK源码Thread.java中的State枚举类 线 阅读全文
摘要:
原创转载请注明出处:https://www.cnblogs.com/agilestyle/p/11426473.html 关键字volatile的主要作用是使变量在多个线程间可见,但无法保证原子性,对于多个线程访问同一个实例变量需要加锁进行同步。 Note: addCount()方法没有加synch 阅读全文
摘要:
Reference:https://time.geekbang.org/column/article/104521 协程的实现原理 协程不只在Go语言中实现了,其实目前大部分语言都实现了自己的一套协程,包括C#、erlang、python、lua、javascript、ruby等。 相对于协程,你可 阅读全文
摘要:
Reference: https://time.geekbang.org/column/article/85702 饥饿:线程因无法访问所需资源而无法执行下去的情况。 “不患寡,而患不均”,如果线程优先级“不均”,在CPU繁忙的情况下,优先级低的线程得到执行的机会很小,就可能发生线程“饥饿”;持有锁 阅读全文
摘要:
Reference: https://time.geekbang.org/column/article/85702 活锁:有时线程虽然没有发生阻塞,但仍然会存在执行不下去的情况。 可以类比现实世界里的例子,路人甲从左手边出门,路人乙从右手边进门,两人为了不相撞,互相谦让,路人甲让路走右手边,路人乙也 阅读全文
摘要:
原创转载请注明出处:https://www.cnblogs.com/agilestyle/p/11424647.html 死锁:一组互相竞争资源的线程因互相等待,导致“永久”阻塞的现象。 解决死锁,要么重启,要么规避 那如何避免死锁呢?要避免死锁就需要分析死锁发生的条件,只有以下这四个条件都发生时才 阅读全文