
Concurrence
文章平均质量分 70
markliwei1
苦逼的通信研究生
展开
-
java多线程-CAS算法
悲观锁和乐观锁传统的锁机制,例如使用java的关键字被认为是一种悲观锁技术。悲观锁首先要求没有其他的线程能够干扰确定的操作(锁定对象),然后才允许你接入实例或者使用方法 这就好像说:“请先把门关上,否则会有其他的骗子进来”。 虽然使用synchronized方法很安全,但是这种方式是以牺牲性能来换群的安全。理由很简单,在线程等待锁的时候,线程什么也不会做。 相比较传统的悲观锁,还有一种高...翻译 2018-07-10 22:31:48 · 226 阅读 · 0 评论 -
java多线程-synchronized(一)
一 、类锁package java_lang_Object;/** * Created by luckyboy on 2018/7/6. */class MyThread_01 { public synchronized static void printA(){ System.out.println("线程名"+Thre原创 2018-07-06 21:53:37 · 146 阅读 · 0 评论 -
java多线程-synchronized(二)
搬运文章具体请看下面这位大佬的文章,写得真好 http://www.cnblogs.com/xrq730/p/4851350.html一、线程访问不同的synchronized(this)package java_lang_Object;/** * Created by luckyboy on 2018/7/7. */public class SynchronizedT...原创 2018-07-07 14:34:29 · 150 阅读 · 0 评论 -
java多线程--Runnable接口和Thread类
java.lang.Object的Runnable接口和Thread类原创 2018-07-05 21:22:42 · 252 阅读 · 0 评论 -
Java多线程--synchronized关键字实现原理(三)
参考文章这里声明一下,这篇文章完全是从下面这篇文章搬运过来的,所以如果想要原汁原味的解析,请看点击链接,写得超棒!如果侵权则删除。 https://blog.youkuaiyun.com/javazejian/article/details/72828483?locationNum=5&fps=1#synchronized%E5%BA%95%E5%B1%82%E8%AF%AD%E4%B9%89%...转载 2018-07-31 16:21:58 · 234 阅读 · 0 评论 -
Java多线程--单例模式的五种实现
一、恶汉模式在这个类还没有使用到的时候就已经创建好了public class Singleton{ /** *类变量在类准备阶段就初始化了然后放在<clinit>构造方法中, *一旦外部调用了静态方法,那么就会初始化完成。 */ private static Singleton instance = new Singleton();...原创 2018-07-27 21:48:58 · 1643 阅读 · 0 评论 -
java多线程-线程之间的可见性
java多线程-可见性(1)定义:一个线程对主内存的修改可以及时的被其他线程观察到 (2)共享变量在线程间不可见的原因: ① 线程交叉执行 ② 线程交叉执行结合指令重排序 ③ 共享变量没有在更新后的值没有在工作内存与主存之间及时更新 (3)synchronized的两条规定 ① 线程释放锁前,必须把共享变量的最新值刷新到主内存当中 ② 线程获取锁时,将当前线程的本地内存置为无效,...原创 2018-07-07 09:02:29 · 2277 阅读 · 0 评论 -
java多线程-死锁和死锁避免
一、死锁产生的四个必要条件二、死锁避免解决方案三、银行家算法避免死锁四、 一个死锁实例五、线程运行查看工具jstack一、死锁产生的四个必要条件互斥条件:某个资源只能被一个进程使用,其他线程请求资源只能等待,直到当前线程释放资源(不可优化项)占有并等待:进程已经保持一个资源,但是又提出了新要求,而这个资源被其他线程,自己保持的资源不被释放不可枪占条件:...原创 2018-08-08 22:25:59 · 900 阅读 · 0 评论 -
java多线程-CounCountDownLatchh
java多线程-CountDownLatchh和CyclicBarrier一、CountDownLatchCountDownLatch是通过一个计数器来实现的,计数器的初始值为线程的数量,每当一个线程完成了自己的任务后,计数器就会减1。当计数器值到达0时,表示所有得线程已经完成了任务,然后闭锁上等待的线程就恢复执行任务1、使用场景1、开始执行前等待n 个线程完成各自的任务:例如...转载 2018-07-10 21:27:41 · 133 阅读 · 0 评论 -
java多线程-ReedWriteReentrantLock
java多线程-ReadWriteReentrantLock读写锁:读写互斥、写写互斥;是对synchronized、ReentranLock锁定一个细分,更确定的是对一个更加细的方向ReadWriteReentrantLock1、创建一个ReadWriteReentLock(默认情况是非公平锁)ReadWriteLock readWriteLock = new ReadWrite...原创 2018-07-10 16:26:30 · 131 阅读 · 0 评论 -
java多线程-ReentranLock
java多线程-ReentranLock详情请去下面大佬去学习,写得非常棒,本人知识搬运 http://www.cnblogs.com/xrq730/p/4855155.html一、ReentranLock使用方法//定义一个锁Lock lock = new ReentranLock();try{ lock.lock();//获得锁 /*此处是临界资源*/...原创 2018-07-08 10:58:34 · 227 阅读 · 0 评论 -
java多线程-sleep()方法和wait()方法
建议其看这篇文章,我只是搬运过来 https://www.cnblogs.com/hongten/p/hongten_java_sleep_wait.html一、wait()wait方法是Object的方法,是每一个类都拥有的一个方法wait()方法一般和notify()/notifyAll()、synchronized(Object){..}一起用.同时Object.wait()必...原创 2018-07-07 08:52:31 · 393 阅读 · 0 评论 -
java多线程-ReentranLock源码解析
一、ReentranLock的三个内部静态类FairSync、NonFairSync、Sync之间的关系FairSync和NonFairSync都是继承Sync这个抽象类; abstract static class Sync extends AbstractQueuedSynchronizer { private static final long serialVe...原创 2018-07-08 15:47:29 · 315 阅读 · 0 评论 -
Java多线程-理解ThreadLocal
Java多线程-理解ThreadLocal此文章是参考许多博客写出来的,如果有不清楚的请往这些博客详细查看ThreadLocal作用ThreadLocal不是用来解决共享对象的多线程访问问题的,通过ThreadLocal的set()方法设置到线程的ThreadLocal.ThreadLocalMap里的是是线程自己要存储的对象,其他线程不需要去访问,也是访问不到的。各个线程中的Th...原创 2018-07-08 15:48:29 · 216 阅读 · 0 评论 -
java多线程-生产者/消费者模型
java多线程-生产者/消费者模型使用synchronized+wait()+notify()/notifyAll()package java_lang_Object;import java.util.LinkedList;/** * Created by luckyboy on 2018/7/4. */public class ConsumerAndProducer {...原创 2018-07-09 09:46:22 · 169 阅读 · 0 评论 -
java多线程-Semaphore(一)
java多线程-Semaphorepackage java_lang_Object;import java.util.concurrent.Semaphore;/** * Created by luckyboy on 2018/7/10. */public class SemaphoreTest { public static void main(String[] arg...原创 2018-07-10 15:46:09 · 182 阅读 · 0 评论 -
java多线程-Semaphore(二)
信号量-解决进程同步和进程互斥一、信号量类型:二元信号量和计数信号量二元信号量主要解决的是进程的互斥问题(也就是说当多个进程想要访问的资源只有一份的时候或者说多个资源想要对同一个资源进行读写,我们就需要使用二元信号量),而计数信号量可以用于解决进程同步的问题(根据我个人的理解是当多个进程访问同一 资源池-有多个相同的资源可供访问,此时需要的就是计数信号量)。对于二元信号量,...原创 2018-07-10 16:03:12 · 186 阅读 · 0 评论 -
java多线程-BlockingQueue实现的生产者消费之模型
参数public class ArrayBlockingQueue<E> extends AbstractQueue<E> implements BlockingQueue<E>, java.io.Serializable { /** * Serialization ID. This cla原创 2018-08-28 09:08:59 · 250 阅读 · 0 评论