java多线程编程
u010154380
这个作者很懒,什么都没留下…
展开
-
AtomicBoolean介绍与使用
AtomicBoolean是java.util.concurrent.atomic包下的原子变量,这个包里面提供了一组原子类。其基本的特性就是在多线程环境下,当有多个线程同时执行这些类的实例包含的方法时,具有排他性,即当某个线程进入方法,执行其中的指令时,不会被其他线程打断,而别的线程就像自旋锁一样,一直等到该方法执行完成,才由JVM从等待队列中选择一个另一个线程进入,这只是一种逻辑上的理解。实际转载 2017-10-03 20:46:40 · 327 阅读 · 0 评论 -
java volatile
volatile这个关键字可能很多朋友都听说过,或许也都用过。在Java 5之前,它是一个备受争议的关键字,因为在程序中使用它往往会导致出人意料的结果。在Java 5之后,volatile关键字才得以重获生机。 volatile关键字虽然从字面上理解起来比较简单,但是要用好不是一件容易的事情。由于volatile关键字是与Java的内存模型有关的,因此在讲述volatile关键之前,我们先来转载 2017-10-03 21:08:05 · 130 阅读 · 0 评论 -
notify发生死锁的情景
JVM多个线程间的通信是通过 线程的锁、条件语句、以及wait()、notify()/notifyAll组成。 下面来实现一个启用多个线程来循环的输出两个不同的语句: package com.tyxh.block; class OutTurn { private boolean isSub = true; private int count转载 2017-10-27 17:32:08 · 253 阅读 · 0 评论 -
设计模式:JDK静态代理之Thread/Runnable
静态代理有如下要素: 1.目标角色(真实角色)。 2.代理角色。 3.目标角色和代理角色实现同一接口。 4.代理角色持有目标角色的引用。 下面的例子是一个简单的静态代理模式。 统一接口: [java] view plain copy print? package com.xs.pattern.staticproxy; /** * 统一接口 *转载 2017-10-11 14:21:49 · 319 阅读 · 0 评论 -
用AtomicStampedReference解决ABA问题
用AtomicStampedReference解决ABA问题 在运用CAS做Lock-Free操作中有一个经典的ABA问题: 线程1准备用CAS将变量的值由A替换为B,在此之前,线程2将变量的值由A替换为C,又由C替换为A,然后线程1执行CAS时发现变量的值仍然为A,所以CAS成功。但实际上这时的现场已经和最初不同了,尽管CAS成功,但可能存在潜藏的问题,例如下面的例子: 现有一个用转载 2017-10-28 20:55:12 · 248 阅读 · 0 评论 -
CyclicBarri和 CountDownLatch的使用场景
CyclicBarrier的用法 CyclicBarrier和CountDownLatch一样,都是关于线程的计数器。 用法略有不同,测试代码如下: 1 public class TestCyclicBarrier { 2 3 private static final int THREAD_NUM = 5; 4 5 public static转载 2017-10-14 11:42:17 · 218 阅读 · 0 评论 -
如何在学习Java过程中死锁跟踪分析的处理!
如何在学习Java过程中死锁跟踪分析的处理! 死锁 死锁: 多个线程同时被阻塞,它们中的一个或者全部都在等待某个资源被释放。由于线程被无限期地阻塞,因此程序不可能正常终止。 JAVA 中死锁产生的四个必要条件 互斥使用,当资源被一个线程使用(占有)时,别的线程不能使用 不可抢占,资源请求者不能强制从资源占有者手中夺取资源,资源只能由资源占有者主动释放。 请求和保转载 2017-10-15 09:54:26 · 331 阅读 · 0 评论 -
深入研究 Java Synchronize 和 Lock 的区别与用法
深入研究 Java Synchronize 和 Lock 的区别与用法转载 2014年01月19日 15:22:20标签:多线程 /lock /syncronized37484在分布式开发中,锁是线程控制的重要途径。Java为此也提供了2种锁机制,synchronized和lock。做为Java爱好者,自然少不了对比一下这2种机制,也能从中学到些分布式开发需要注意的地方。 我们先从最简单的入手,逐...转载 2018-03-19 00:11:27 · 299 阅读 · 0 评论 -
深入剖析ThreadLocal实现原理以及内存泄漏问题
深入剖析ThreadLocal实现原理以及内存泄漏问题一、概述在2017京东校园招聘笔试题中遇到了描述ThreadLocal的实现原理和内存泄漏的问题,之前看过ThreadLocal的实现原理,但是网上有很多文章将的很乱,其中有很多文章将ThreadLocal与线程同步机制混为一谈,特别注意的是ThreadLocal与线程同步无关,并不是为了解决多线程共享变量问题! ThreadLocal官网解释...转载 2018-03-25 23:02:28 · 126 阅读 · 0 评论