08 2022 档案
摘要:假如有一个需求,要多线程输出2,然后再输出1,就是要控制多线程输出的顺序,试着去实现 #方法1:wait,notify @Slf4j(topic = "ch.XianChengTongBuTest01") public class XianChengTongBuTest01 { static fin
阅读全文
摘要:#特点 相比于synchronized,ReentrantLock具有可中断,可以设置超时时间,可以设置为公平锁,支持多个条件变量的特点,它和synchronized一样,都支持可重入 #基本语法 // 获取锁 reentrantLock.lock(); try { // 临界区 } finally
阅读全文
摘要:锁的粒度减小,并发量也会增大,当然也会随之而来一些问题 #示例 假如有一个大房子有两个功能:睡觉和学习,互不相干,t1线程要学习,t2线程要睡觉,如果都用一个房子的话,并发度很低,解决方法就是用多个房子 #就用一个房子 public class Test01 { public static void
阅读全文
摘要:#操作系统中进程状态 1.运行态:进程正在处理机上运行。在单处理机的环境下,每个时刻只有一个进程处于运行态 2.就绪态:进程获得了除处理机外的一切所需资源,一旦得到处理机,就可以立刻运行。系统中处于就绪状态的进程可能有多个,通常把他们放到就绪队列中。 3.阻塞态:又叫等待态。进程正在等待某一事件,所
阅读全文
摘要:#wait¬ify ##wait作用 有时候线程运行时需要用到其他资源如IO,就需要进入IO等待状态,如果这个线程一直占用锁等待的话,其他线程也不能用CPU,效率非常低,所以需要在得到这个锁之后主要调用wait方法,进入waitSet等待,等其他资源满足了调用notify方法唤醒这个线程,让这
阅读全文
摘要:#共享带来的问题 就是多个线程修改同一变量,由于操作不是原子性的,所以可能会出现修改覆盖的问题 ##一个例子 @Slf4j(topic = "ch.GuanchengTest01") public class GuanchengTest01 { static int counter = 0; pub
阅读全文