PriorityBlockingQueue属于比较特殊的阻塞队列,适用于有元素优先级要求的场景。它的内部和ArrayBlockingQueue一样,使用一个了全局独占锁来控制同时只有一个线程可以进行入队和出队,入队线程并不会阻塞。
分类:
编程语言 时间:
2019-07-09 12:15:17
阅读次数:
135
condition有两层锁: 1. 一把底层锁会在线程调用了wait方法的时候释放(是先创建一把锁,然后再release),底层还是Lock或者RLock, 2.第二把锁会在每次调用wait的时候创建一把新的,并放入到cond的等待队列中(采用的是dqueue),一直acquire,等到notify ...
分类:
编程语言 时间:
2019-07-07 14:49:12
阅读次数:
107
本文主要整理互动直播中各端的逻辑,重点是与前端相关的教师端IM的部分和Web/Wap学生端。希望通过这份整理,对于前端在维护时可以尽快的理解互动直播的流程,提高项目的可维护性;对于客户端和教师端来说,可以了解到前端提供的接口和消息的实现。也能提高对整个请麦过程的理解,便于联调和后期的定位问题。 相关 ...
分类:
其他好文 时间:
2019-07-02 19:01:50
阅读次数:
121
1.公平锁与非公平锁 公平锁:指多个线程在等待同一个锁时,必须按照申请锁的先后顺序来依次获得锁。 优点:等待锁的线程不会饿死。缺点:整体效率相对较低。 非公平锁:可以抢占,即如果在某个时刻有线程需要获取锁,而这个时候刚好锁可用,则该线程会直接抢占,而这时阻塞在等待队列的线程不会被唤醒。 默认实现的是 ...
分类:
编程语言 时间:
2019-06-30 20:32:29
阅读次数:
132
vmstat 1 5 表示每隔一秒采集5次。 Procs r: 处于运行队列中的内核线程数目(进程数)。 b: 置于等待队列(等待资源、等待输入/输出)的内核线程数目。 处于block队列中不可中断的进程数 Memory swpd: 可用的虚拟交换内存 free:空闲内存 buff: 已用缓冲数目 ... ...
分类:
其他好文 时间:
2019-06-23 20:46:55
阅读次数:
96
ReentrantLock介绍ReentrantLock基于AQS实现了公平和非公平的独占锁功能,原理介绍~!!!!!
分类:
编程语言 时间:
2019-06-13 22:00:09
阅读次数:
130
AQS是一个抽象类,提供了一套通用的控制同步状态,线程阻塞/唤醒,等待队列管理的操作。
分类:
编程语言 时间:
2019-06-06 15:53:55
阅读次数:
133
MyISAM是MySQL的默认数据库引擎(5.5版之前),由早期的ISAM(Indexed Sequential Access Method:有索引的顺序访问方法)所改良。虽然性能极佳,但却有一个缺点:不支持事务处理(transaction)。不过,在这几年的发展下,MySQL也导入了InnoDB( ...
分类:
数据库 时间:
2019-05-28 12:42:16
阅读次数:
116
[toc] 5. AQS(AbstractQueuedSynchronizer)抽象的队列式的同步器 AQS为依赖FIFO的等待队列的阻塞锁和相关的同步器(信号量,事件等)实现提供了一个框架。设计的目标是为大部分的依赖一个原子int值表示状态的同步器提供一个有用的基础。子类必须实现一个受保护的来改变 ...
分类:
其他好文 时间:
2019-05-17 23:10:27
阅读次数:
208
poll_initwait(&table):就是将__pollwait设为回调函数 poll函数:后面会去调用驱动程序的poll函数,poll函数调用pollwait就等于调用__pollwait,将当前进程加入到等待队列中,以便唤醒休眠后的当前进程。 然后返回当前驱动设备的状态(mask),以便收 ...
分类:
系统相关 时间:
2019-05-05 17:58:42
阅读次数:
133