多线程
我只爱枕枕
这个作者很懒,什么都没留下…
展开
-
Java中的线程
1、线程1.1 什么是线程现代操作系统在运行一个程序的时候会开启一个进程。调度的最小单位是线程,一个进程里会有多个线程。这多个线程共享进程资源。进程是CPU调度资源的最小单位,线程是CPU调度和程序执行的最小单位。进程有自己的独立地址空间,而线程只有自己的堆栈空间和局部变量。进程切换需要很大的开销,线程切换开销比较小。1.2 Java天生是多线程的在main方法启动时,会启动一个ma...原创 2019-04-29 16:17:47 · 140 阅读 · 0 评论 -
Java线程之间的协作
文章目录线程间的协作sleep(long millis)yield( )wait() / notify()等待 / 通知的经典范式等待 / 超时模式join()线程间的协作sleep(long millis)Thread.sleep(),让当前线程暂停等待时间,让出CPU的使用权,不释放锁。yield( )让出当前的CPU时间片,将线程从运行改为就绪,并且再次参与CPU使用权的竞争。也不...原创 2019-04-29 16:21:58 · 408 阅读 · 0 评论 -
Java中的ThreadLocal
文章目录ThreadLocal代码演示使用场景原理解析ThreadLocalMap的弱引用key与内存泄漏ThreadLocalThreadLock用于多线程时,解决变量共享的一个框架。ThreadLocal是线程局部变量,只能在本线程访问,不能在线程之间进行共享访问。void set(T value): 将此线程局部变量的当前线程副本中的值设置为指定值。T get(): 返回当前线...原创 2019-04-29 16:25:25 · 164 阅读 · 0 评论 -
Java中的volatile关键字
文章目录volatile关键字volatile结合JMM分析volatile实现内存可见性和有序性volatile关键字当一个变量被修饰为volatile关键字,那么某个线程修改了这个变量,其他变量能马上获取到最新修改的值。volatile结合JMM分析 对于一个普通的共享变量,多个线程在操作它时,不能直接从主内存操作,必须在线程的私有栈操作。每个线程的私有栈都保存着共享变量的副本,先...原创 2019-04-29 16:31:17 · 112 阅读 · 0 评论 -
Java中的synchronized关键字
文章目录synchronized关键字锁对象与锁class实现原理自旋锁与自适应自旋锁粗化轻量级锁synchronized关键字synchronized是JVM为我们提供的一个重量级锁。锁对象与锁class对于普通同步方法,锁是当前实例对象。对于静态同步方法,锁是当前类的Class对象。对于同步方法块,锁是Synchonized括号里配置的对象。实现原理对于synchroniz...原创 2019-04-29 16:34:01 · 268 阅读 · 0 评论 -
Java中的CAS
文章目录CAS关键字CAS介绍CAS的ABA问题CAS的缺陷CAS关键字CAS介绍CAS是compareAndSwap(比较并交换),它有三个操作数,分别是内存地址V,旧的预期值A,新的值B,CAS执行时,当且仅当V的值符合旧预期值A时,处理器就更新V的值为B,否则就不进行更新。无论它是否更新V的值,都会返回V的旧值,这是个原子操作。 CAS实现了无锁状态下的共享变量的非原子操作问题。...原创 2019-04-29 16:35:09 · 143 阅读 · 0 评论 -
Java中的AbstractQueuedSynchronizer队列同步器
文章目录AbstractQueuedSynchronizer队列同步器队列同步实现分析之同步队列队列同步实现分析之独占式同步资源获取与释放队列同步实现分析之共享式同步资源获取与释放独占式获取资源跟共享式获取资源实现上的区别可响应中断的获取资源自定义共享锁AbstractQueuedSynchronizer队列同步器###7.2.1 队列同步器的概念 队列同步器是用来构建其他锁组件的基础框...原创 2019-04-29 16:37:53 · 177 阅读 · 0 评论 -
Java中的Lock与ReentrantLock
文章目录Lock可重入锁ReentrantLock可重入分析公平锁与非公平锁分析自己实现一个可重入锁LockLock是JDK1.5之后提供的,它是Java语法级别的锁。加锁使用lock.lock(),解锁使用lock.unlock()。需要注意的是,它的unlock,必须放在finally中进行,因为如果在加锁后,代码出现了异常,是不会释放锁的。与synchronized对比:sync...原创 2019-04-29 16:41:16 · 1496 阅读 · 0 评论 -
Java中的Condition
文章目录Condition接口Condition接口介绍使用Condition实现wait/notify的弹夹射击例子Condition源码分析等待队列Condition的await()等待Condition的signal()唤醒Condition接口Condition接口介绍对于synchronized锁,线程之间的通信方式是wait和notify。对于Lock接口,线程间就是通过Cond...原创 2019-04-29 16:43:59 · 403 阅读 · 0 评论