博客
分类
标签
归档
博客
分类
标签
归档
这没有汤姆猫
博客
分类
标签
归档
多线程基本知识
多线程模型用户级线程 用户级线程由应用程序通过线程库实现,所有线程管理工作都由应用程序负责。 用户级线程对用户不透明,对操作系统透明。 用户级线程即为从“用户视角可以看到的线程”。 内核级线程 内核级线程的管理工作由操作系统内核完成。线程调度、切换等工作都由内核来负责,因此内核级线程的切换必然需要在核心态下才能完成。 因此在同时支持用户级线程和内核级线程的系统中,可以采用二者组合的方式:...
2021-05-07
多线程
阅读全文
多线程面试题
三个线程顺序执行依次输出ABCABCABCABC…题目描述 三个线程顺序执行依次输出ABCABCABCABC…,让我们如何控制线程的同步访问,使得线程依次输出ABCABCABCABC…的结果。 解题思路 使用最简便最实用的信号量Semaphore,通过控制信号的获取以及释放,承接获取锁来实现线程得顺序执行以及临界资源的同步访问。这里要明白如果信号量(Semaphore)初始化为0的话,调用...
2020-06-07
多线程面试题
阅读全文
抽象同步队列AQS
AQS简介 AbstractQueuedSynchronizer类简称为(AQS),它是实现同步器的基本组件,内部使用int类型来表示同步状态,并提供CAS方法来操作这个同步状态。如常用的ReentrantLock/Semaphore/CountDownLatch等等就是基于AQS实现的,用法是通过继承AQS实现其模版方法,然后将子类作为同步组件的内部类。 上图是该类的属性,AQS是一...
2020-04-24
多线程
阅读全文