随笔分类 -  并发编程

AbstractQueuedSynchronizer
摘要:AbstractQueuedSynchronizer简称AQS,它是线程之间协作的一种规范,AQS思想来源于CLH队列锁。 CLH队列锁 在多个线程共同操作一个共享资源的时候,会将每个线程打包成一个个的QNode节点,这个节点有俩属性,一个是locked,表示当前线程是否需要获取锁,true为需要获
68
0
0
CountDownLatch和CyclicBarrier
摘要:CyclicBarrier的官方解释: A synchronization aid that allows a set of threads to all wait for each other to reach a common barrier point. CyclicBarrier是一个同步的
132
0
0
显示锁Lock
摘要:Lock简单介绍 public class LockDemo { // 声明一个lock锁 private Lock lock = new ReentrantLock(); private int count; // 用lock来加锁 public void increament01() { //
273
0
0
并发编程大师系列之:深入理解ThreadLocal
摘要:总记得在面试的时候被问到过,今天终于轮到你了ThreadLocal,从表面上读英文的意思为线程本地变量,这样也许更好理解了,就是每个线程自己独有的,不与其它线程共享的变量呗。 首先翻开源码,这个author的名字真的熟悉,对,就是dog李(Doug Lea),貌似lang包下的很多都是由这位哥编写的
602
0
0
并发编程大师系列之:wait/notify/notifyAll/condition
摘要:1. wait()、notify()和notifyAll()方法是本地方法,并且为final方法,无法被重写。 2. 调用某个对象的wait()方法能让当前线程阻塞,并且当前线程必须拥有此对象的monitor(即锁)。 3. 调用某个对象的notify()方法能够唤醒一个正在等待这个对象的monit
429
0
0
并发编程大师系列之:Synchronized的类锁和对象锁
摘要:说到并发编程,感觉跟大多数人一样,谈之色变,说它简单把,其实很有内容,说难吧,用起来也挺容易,最近我硬着头皮,决心要把并发编程好好的搞一遍。以前,面试的时候,面试官问,并发编程会吗?嗯,接触过,就加一个synchronized关键字就好了,面试官微笑着说,嗯好。特喵的现在感觉来说,这俩low逼。本来
439
0
0
并发编程大师系列之:线程的定义和中断 interrupt
摘要:1.启动线程的三种方式: 1.1继承Thread类 public static class UseThread extends Thread { public void run() { System.out.println("thread run 执行!"); } } 启动线程: UseThread
368
0
0
并发编程:线程的中断
摘要:1.使用interrupt()中断线程 首先来看一段代码: 执行结果: 分析:Thread.sleep(2000)这个方法需放在interrupt方法之后,如果放在之前,会出现中断标志位全为false的情况 如果只是单纯的调用interrupt()方法,线程并没有实际被中断,会继续往下执行。 比如:
227
0
0
并发编程大师系列之:CountDownLatch和Join
摘要:业务场景描述:假设一条流水线上有三个工作者:worker1,worker2,worker3。有一个任务的完成需要他们三者协作完成,worker3可以开始这个任务的前提是worker1和worker2完成了他们的工作,而worker1和worker2是可以并行他们各自的工作的。 1.join实现 结果
502
0
0
并发编程:Thread和Runable-01
摘要:1.继承Thread类(不推荐) 代码很简单,就不说了 2.实现Runable接口 以上运行的结果: run和start的区别? start()它的作用是启动一个新线程。通过start()方法来启动的新线程,处于就绪(可运行)状态,并没有运行,一旦得到cpu时间片,就开始执行相应线程的run()方法
265
0
0
点击右上角即可分享
微信分享提示
深色
回顶
展开