java多线程
_JenKin
这个作者很懒,什么都没留下…
展开
-
关于多线程相关知识的一个梳理
自己关于多线程知识的一个梳理,有很多地方可能不一定正确,还希望大家指出来原创 2021-03-02 17:39:02 · 106 阅读 · 0 评论 -
java多线程基础
我们经常会听到或看到有人说:java天生就是多线程的。但是为什么这么说呢?可以参考这篇文章的解释Java天生就是多线程语言在你值执行一个main方法的时候其实jvm同时开启了许多的辅助线程来保证你的程序正常运行,比如清除引用对象的线程,调用对象finalize方法的线程等等。线程的一些基础概念:1. CPU核心数和线程的关系通常,线程数与CPU核心数的关系是1:1,但是当微软引入了超线程技...原创 2019-02-24 16:36:13 · 394 阅读 · 0 评论 -
java多线程分而治之--Fork/Join框架
分治策略当我们求解某些问题时,由于这些问题要处理的数据相当多,或求解过程相当复杂,使得直接求解法在时间上相当长,或者根本无法直接求出。对于这类问题,我们往往先把它分解成几个子问题,找到求出这几个子问题的解法后,再找到合适的方法,把它们组合成求整个问题的解法。如果这些子问题还较大,难以解决,可以再把它们分成几个更小的子问题,以此类推,直至可以直接求出解为止。这就是分治策略的基本思想。二分法就是一...原创 2019-03-03 14:12:52 · 852 阅读 · 0 评论 -
CountDownLatch和CyclicBarrier以及Semaphore
Java并发编程:CountDownLatch、CyclicBarrier和Semaphore在java 1.5中,提供了一些非常有用的辅助类来帮助我们进行并发编程,比如CountDownLatch,CyclicBarrier和Semaphore,今天我们就来学习一下这三个辅助类的用法。以下是本文目录大纲:一.CountDownLatch用法二.CyclicBarrier用法三.Sema...转载 2019-03-03 14:58:14 · 119 阅读 · 0 评论 -
java中的原子操作类
什么是原子操作?“原子操作(atomic operation)是不需要synchronized”,这是多线程编程的老生常谈了。所谓原子操作是指不会被线程调度机制打断的操作;这种操作一旦开始,就一直运行到结束,中间不会有任何 context switch (切换到另一个线程)。在 java中怎样实现原子操作?在多线程变成的时候我们经常会需要多个线程对同一个变量(资源)进行读写操作,这要就会...原创 2019-03-09 14:48:22 · 179 阅读 · 0 评论 -
Java并发之AQS详解
最近在博客园看到了一片很好的讲述AQS源码的文章,这里转发收藏一下,原文:https://www.cnblogs.com/waterystone/p/4920797.html Java并发之AQS详解 一、概述 谈到并发,不得不谈ReentrantLock;而谈到ReentrantLock,不得不谈AbstractQueuedSynchronizer(...转载 2019-03-30 12:57:37 · 211 阅读 · 0 评论 -
AQS 启发--自己实现一个ReentrantLock的一部分(独占式非公平锁)
ReentrantLock什么是ReentrantLock ?ReentrantLock 中文翻译过来就是可重入锁,也就是同一个线程这个锁是可以重复获取的 ,synchronize关键字就是一个隐式的可重入锁。ReentrantLock 的实现原理ReentrantLock 是实现了Lock接口使得它能够作为一个锁被使用,同时他还有一个内部类同步器:Sync ,这个类继承了AQS(A...原创 2019-03-30 19:10:29 · 307 阅读 · 0 评论