随笔分类 - 多线程
摘要:设计ThreadPoolExecutor中存在内部类Worker, 线程池通过HashSet保存这些Worker对象。Worker类实现Runnable接口,Worker对象就是实际的任务执行者,同时也代表一个独立线程。每一个Worker对象在实例化时通过ThreadFact...
阅读全文
摘要:参考文章:http://www.cnblogs.com/huaizuo/archive/2016/04/20/5413069.htmlhttps://www.cnblogs.com/leesf456/p/5453341.htmlhttps://www.toutiao.com/...
阅读全文
摘要:Github项目:https://github.com/luxiaoxun/NettyRpcFork: https://github.com/sw008/NettyRpc此项目很适合学习多线程和NettyRPC调用流程大体思路:整个异步/同步通讯流程,适用于大多数同步/异步s...
阅读全文
摘要:一行一行源码分析清楚AbstractQueuedSynchronizerhttp://www.cnblogs.com/waterystone/p/4920797.htmlAQS的经典使用案例推荐JDK中JUC组件源码:ReentrantLock、Semaphore、Count...
阅读全文
摘要:github 代码:https://github.com/sw008/Repository其他文章:https://www.liaoxuefeng.com/article/00151054582348974482c20f7d8431ead5bc32b30354705000ht...
阅读全文
摘要:原文地址:https://www.w3cschool.cn/architectroad/architectroad-session-consistency.html一、缘起什么是session?服务器为每个用户创建一个会话,存储用户的相关信息,以便多次请求能够定位到同一个上下...
阅读全文
摘要:1 重入锁:线程重复获得已经持有的锁,锁有一个"持有计数器"跟踪锁的嵌套2 锁和条件的作用 锁:用来保护代码片段,任何时候同一个对象只能有一个线程执行被某一个锁保护的代码 锁:管理试图进入被保护代码片段的线程,同一对象的一个锁在同一时间只能被一个线程持有 锁:可以...
阅读全文
摘要:1 AtomicRefence的CAS操作只比较引用变量的引用是否发生变化,若引用没变则设置为新的引用。CAS操作不关心引用的对象的属性变化,只关心引用变化,因为CAS操作用"=="比较原值CAS思想流程: now=get()当前值 --> 计算处理 --> CAS比较no...
阅读全文
摘要:一、Java NIO 的核心组件Java NIO的核心组件包括:Channel(通道),Buffer(缓冲区),Selector(选择器),其中Channel和Buffer比较好理解 简单来说 NIO是面向通道和缓冲区的,意思就是:数据总是从通道中读到buffer缓冲区内,或...
阅读全文
摘要:原文 点击打开链接现在使用NIO的场景越来越多,很多网上的技术框架或多或少的使用NIO技术,譬如Tomcat,Jetty。学习和掌握NIO技术已经不是一个JAVA攻城狮的加分技能,而是一个必备技能。再者,现在互联网的面试中上点level的都会涉及一下NIO或者AIO的问题(A...
阅读全文
摘要:import java.util.concurrent.CountDownLatch;class Driver { void main() throws InterruptedException { CountDownLatch startSignal = ...
阅读全文
摘要:ThreadLocal:线程本地变量。ThreadLocal为变量在每个线程中都创建了一个副本,那么每个线程可以访问自己内部的副本变量。适用:1 需要各个线程间独立的变量,2 同线程下多方法传递的变量(解决某些方法无法相互传参)1 ThreadLocal 适合解决共享/单例对...
阅读全文
摘要:(转载)1 . 原子性(Atomicity): Java中,对基本数据类型的读取和赋值操作是原子性操作,所谓原子性操作就是指这些操作是不可中断的,要做一定做完,要么就没有执行。比如:i = 2; //原子j = i; //非原子 (1 读i,2 赋值j)i++; //非原...
阅读全文
摘要:(内容有部分借鉴其他文章)被volatile修饰的共享变量,具有了以下特性:1 .可见性 2 .有序性 3. 非线程安全,非原子操作1 可见性:当一个变量被volatile修饰时,那么对它的修改会立刻刷新到主存,当其它线程再次需要读取该变量时,会去内存中读取新值。而普通变...
阅读全文

浙公网安备 33010602011771号