NAT,STUN,TURN,SIP,ICE,WebRTC
摘要:参考: Kavirajan ST : What is WebRTC and How to Setup STUN/TURN Server for WebRTC Communication? Andrey B. :Еnvironment: signaling, STUN and TURN servers
阅读全文
线程安全集合类 —— ConcurrentHashMap
摘要:线程安全集合类概述 线程安全集合类可以分为三大类: 遗留的线程安全集合如 Hashtable , Vector 使用 Collections 装饰的线程安全集合(每个方法都加上了 sychronized,性能不是很高),如: Collections.synchronizedCollection Co
阅读全文
ReentrantLock
摘要:ReentrantLock 相对于 synchronized 它具备如下特点 可打断 可以设置超时时间 可以设置为公平锁 支持多个条件变量 与 synchronized 一样,都支持可重入 基本用法 // 获取锁 reentrantLock.lock(); try { // 临界区 } finall
阅读全文
七、J.U.C
摘要:AQS 全称是 AbstractQueuedSynchronizer,是阻塞式锁和相关的同步器工具的框架 特点: 用 state 属性来表示可用资源数(分独占模式和共享模式),子类需要定义如何维护这个状态,控制如何获取锁和释放锁 getState - 获取 state 状态 setState - 设
阅读全文
Spring —— IOC
摘要:参考: AspirantPeng : Bean的生命周期 先说好不能骂我 : Spring源码学习--Aware相关接口 Water : Spring 如何解决 Bean 的循环依赖(循环引用) 码上得天下 :哪些循环依赖问题Spring解决不了? 三友的java日记 : @Async注解的坑,小心
阅读全文
Servlet,Tomcat,SpringMVC
摘要:参考: PoetryAndTheDistance :一:Tomcat核心组件及应用架构详解 Hong EuiSung –@gowoonosori : 요청처리 내부구조 码哥字节 :Tomcat 架构原理解析到架构设计借鉴 编程随笔: 细说tomcat之类加载器 tomcatDoc: Class L
阅读全文
五、进程调度/页面置换/磁盘调度
摘要:小林coding 《图解系统:调度算法》笔记 参考: geeksforgeeks: CPU Scheduling in Operating Systems uic:CPU Scheduling 进程调度 TIP 我知道很多人会问,线程不是操作系统的调度单位吗?为什么这里参与调度的是进程? 先提前说明
阅读全文
六、线程池
摘要:自定义线程池 步骤1:自定义阻塞队列 class BlockingQueue<T> { // 1. 任务队列,双向链表 private Deque<T> queue = new ArrayDeque<>(); // 2. 锁 private ReentrantLock lock = new Reen
阅读全文
五、共享模型之不可变
摘要:日期转换的问题 问题提出 下面的代码在运行时,由于 SimpleDateFormat 不是线程安全的 SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); for (int i = 0; i < 10; i++) { new Threa
阅读全文
四、共享模型之无锁
摘要:CAS 有一个共享变量余额,多线程调用减余额方法 withdraw 减少这个共享的余额变量 balance 方法内会启动 1000 个线程,每个线程做 -10 元 的操作 * 如果初始余额为 10000 那么正确的结果应当是 0。结果却大于 0 加锁解决 class AccountUnsafe im
阅读全文