随笔分类 -  并发编程

摘要:1.ReentrantLock是基于AQS实现的一种重入锁。 2.先介绍下公平锁/非公平锁 公平锁 公平锁是指多个线程按照申请锁的顺序来获取锁。 非公平锁 非公平锁是指多个线程获取锁的顺序并不是按照申请锁的顺序,有可能后申请的线程比先申请的线程优先获取锁。有可能,会造成优先级反转或者饥饿现象。 3. 阅读全文
posted @ 2019-02-26 18:06 加肥猫咪 阅读(155) 评论(0) 推荐(0)
摘要:1.什么是AQS? AQS是英文单词AbstractQueuedSynchronizer的缩写,翻译过来就是队列同步器。 它是构建锁或者其他同步组件的基础框架(如ReentrantLock、ReentrantReadWriteLock、Semaphore等),JUC并发包的作者(Doug Lea)期 阅读全文
posted @ 2019-02-25 14:03 加肥猫咪 阅读(5852) 评论(0) 推荐(1)
摘要:1.Synchronized关键字 Synchronized关键字会让没有得到锁资源的线程进入BLOCKED状态,而后在争夺到锁资源后恢复为RUNNABLE状态,这个过程中涉及到操作系统用户模式和内核模式的转换(重量级锁在操作系统层面,申请了Mutex Lock 来实现互斥),代价比较高。 尽管Ja 阅读全文
posted @ 2019-01-24 17:10 加肥猫咪 阅读(821) 评论(0) 推荐(0)
摘要:线程是存在生命周期的,从线程的创建到销毁,可能会经历6种不同的状态,但是在一个时刻线程只能处于其中一种状态 NEW:初始状态,线程被创建时候的状态,还没有调用start方法 RUNNABLE:运行状态,运行状态包含就绪和运行两种状态,因为线程启动以后,并不是立即执行,而是需要通过调度去分配CPU时间 阅读全文
posted @ 2018-12-11 16:46 加肥猫咪 阅读(201) 评论(0) 推荐(0)