java多线程
小楼东风细雨
计算机系
展开
-
Java线程池原理(多线程)
一、JDK四种线程池 1、ExecutorService .newSingleThreadExecutor() //创建一个只有单一线程的线程池,全部任务都按顺序执行,源码如下 /** * Creates an Executor that uses a single worker thread operating * off an unbounded queue.原创 2016-11-03 10:04:32 · 535 阅读 · 0 评论 -
Why are Thread.stop, Thread.suspend and Thread.resume Deprecated?(源码学习)
一、Thread.stop Why is Thread.stop deprecated? Because it is inherently unsafe. Stopping a thread causes it to unlock all the monitors that it has locked. (The monitors are unlocked as the Threa原创 2016-11-07 11:19:33 · 1024 阅读 · 0 评论 -
newScheduledThreadPool延时任务线程池,实现原理
Excutors的newScheduleThreadPool程序结构,我们在构造ThreadPoolExcute时,Queue队列使用了DelayedWorkQueue,这是一个可延时执行阻塞任务的队列,Delayed元素的一个无界阻塞队列,只有在延迟期满时才能从中提取元素。该队列的头部是延迟期满后保存时间最长的Delayed元素。如果延迟都还没有期满,则队列没有头部,并且poll将返回null。condition的定义Condition available = lock.newCondition();(n原创 2016-11-09 10:29:29 · 14019 阅读 · 1 评论 -
java.lang.Number家族(源码学习)
java.lang.Number这个基础类,看似貌不惊人,其实在java数字类型生态系统中很重要。上图看下他的子类家族 基本涵盖了我们常用的几个数字类型的封装类,Byte、Double、Float、Integer、Long、Short,还有Atomic家族,AtomicDouble、AtomicInteger、AtomicLong再看看Number类中的方法public abstract原创 2016-11-01 10:24:29 · 2237 阅读 · 0 评论 -
ThreadPoolExcute运行原理(源码学习)
一、ThreadPoolExcute类主要变量 shutdownPerm:权限检查使用 runState:运行状态,对应有RUNNING 0、SHUTDOWN 1、STOP 2、TERMINATED 3 BlockingQueue workQueue :任务队列 ReentrantLock mainLock:可重入锁 Condition termination=mainL原创 2016-11-04 18:06:57 · 1622 阅读 · 0 评论