
多线程
文章平均质量分 77
笑我归无处
这个作者很懒,什么都没留下…
展开
-
ConcurrentHashMap原理详解(太细了)
和HashMap一样,是一个存放键值对的容器。使用hash算法来获取值的地址,因此时间复杂度是O(1)。查询非常快。同时,是线程安全的HashMap。专门用于多线程环境。做插入操作时,首先进入乐观锁,然后,在乐观锁中判断容器是否初始化,如果没初始化则初始化容器,如果已经初始化,则判断该hash位置的节点是否为空,如果为空,则通过CAS操作进行插入。如果该节点不为空,再判断容器是否在扩容中,如果在扩容,则帮助其扩容。如果没有扩容,则进行最后一步,先加锁,然后找到hash。......原创 2022-07-31 23:43:35 · 73250 阅读 · 37 评论 -
ThreadPoolExecutor线程池原理(太细了)
ThreadPoolExecutor是一个线程池,最多可使用7个参数来控制线程池的生成。使用线程池可以避免创建和销毁线程的资源损耗,提高响应速度,并且可以管理线程池中线程的数量和状态等等。阿里巴巴手册中也推荐使用该线程池,因为Executors创建缓存线程池时,最大线程数是,可能导致堆栈溢出。而且使用ThreadPoolExecutor创建线程池可以让开发者更好理解线程池原理。...原创 2022-07-30 12:52:15 · 680 阅读 · 0 评论 -
为什么和线程有关的方法会被封装在Object类中
回答这个问题之前,首先我们要知道哪些和线程有关的方法被封装在类中。唤醒一个在此对象监视器上等待的线程。被唤醒的线程是随机的,不确定的。唤醒在该对象上等待的所有线程。之后这些线程会重新获取该对象的锁,最终只有一个对象能获取锁。让当前线程进入等待状态。直到其他线程调用此对象的 方法或 方法。让当前线程处于等待(阻塞)状态,直到其他线程调用此对象的 方法或 方法,或者超过参数 设置的超时时间。果 参数为 0,则不会超时,会一直进行等待,类似于 方法。与 方法类似,多了一个 参数,这个参数表示原创 2022-07-04 17:34:30 · 327 阅读 · 0 评论 -
CopyOnWriteArrayList原理详解(太细了)
从原理,源码,说明,优缺点,应用场景等多方面介绍了CopyOnWriteArrayList原创 2022-06-12 15:41:54 · 3911 阅读 · 2 评论