
多线程
白丝巾
QQ:137437006 欢迎骚扰
展开
-
多线程初识一
几个重要概念同步和异步并发和并行临界区阻塞和非阻塞锁、死锁、饥饿、活锁并行的级别:阻塞>>非阻塞(无锁>无障碍>无等待)并行相关定律:阿姆达尔定律,加速比定义 1/(F+1/n*(1-F)) F为串行比例,N为处理器个数古斯塔夫森定律,加速比定义 n-F(n-1) ==========================================原创 2017-12-03 00:24:59 · 247 阅读 · 0 评论 -
多线程初识二
同步控制工具的使用ReentrantLock重入锁(可重入、可中断、可限时、公平锁【解决饥饿问题】)Condition相当于wait和notifySemaphore共享锁,可以控制N个线程同时进入临界区ReadWriteLock读读不阻塞,其他都阻塞CountDownLatch倒数计时器,点火器CyclicBarrier循环计时器LockSupport提供线程阻塞原语原创 2017-12-06 22:50:36 · 133 阅读 · 0 评论 -
多线程初始三
认识jetty1、new Server()所做的事情:初始化线程池-->QueuedThreadPool-->execute()方法把任务加入job-->任务推入BlockingQueue(具体实现,这个是阻塞队列可待优化)初始化ServerConnector-->初始化ScheduledExecutorScheduler && ByteBufferPool(对原创 2017-12-17 19:02:48 · 189 阅读 · 0 评论 -
多线程初识四
NIO and AIO New I/O 与旧式的基于流的I/O相对再JDK1.4纳入,特点:1、NIO基于块Block,原来IO是基于流的2、为所有的原始类型提供Buffer缓存支持3、增加通道Channel对象4、支持锁和内存映射文件的文件访问接口5、提供了基于Selector的异步网络I/O总结:1、Buffer类似bean,通道Channel是具体原创 2017-12-17 21:52:30 · 164 阅读 · 0 评论 -
Thread类的使用
前言: 每一个类都有wait(),notify()的方法,简单理解这两个方法: 1、对象维护了一个等待队列list; 2、线程A中执行对象的wait方法,把线程A保存到list中; 3、线程B中执行对象的notify方法,从等待队列中取出线程A继续执行;文中中断方法的使用方法摘抄至:https://www.cnblogs.com/onl原创 2018-01-03 16:47:40 · 215 阅读 · 0 评论 -
FutureTask源码阅读与理解
FutureTask源码阅读与理解简述:FutureTask实现了Runnable和Future接口,代表此类可以被线程池调度和异步执行任务。几个变量: //以下是state的几种状态 private volatile int state; private static final int NEW = 0; private static原创 2018-01-18 23:33:49 · 204 阅读 · 0 评论 -
JAVA版Future模式实现代码
JAVA版Future模式实现代码思路: 1、调用方发送数据给被调用方并起一个线程等待数据填充, 2、被调用方立马返回数据并启动一个线程处理, 3、处理完把数据交给调用方并唤醒调用方线程。调用方代码:import java.util.concurrent.locks.ReentrantLock;/** * @author 作者:hui E-mail: 137437006@qq.com* @原创 2018-01-18 18:21:24 · 1033 阅读 · 0 评论