
线程池
CWeeYii
勤奋、天赋并重
展开
-
线程池-基础类
1.UnSafe类UnSafe类:用于执行低级别、不安全操作的方法集合,其通过直接操作内存来保证线程安全。Unsafe和ByteBuff都能用于是获取非堆内存,但UnSafe保证了对非堆内存的操作是线程安全的,而ByteBuff不能保证。 并且其可以不用调用类的构造函数从而直接反序列化对象等。2.Thread类关键Field: ThreadGroup g 、Runnable target、线程名原创 2016-10-23 17:14:09 · 526 阅读 · 0 评论 -
线程池-shutdown和awaitTermination
1.shutdown和awaitTerminationshutdown:启动线程池的有序关闭过程,其等待已经提交的所有任务完成之后关闭线程池。当调用该方法后,线程池不再接受其他任务。并且该方法是非阻塞的,不会等待所有任务执行成功后返回。调用线程直接返回public class SleepWorker implements Runnable { private static final Log原创 2016-10-16 10:55:53 · 3436 阅读 · 2 评论 -
线程池-shutdownNow
1.shutdownNowshutdownNow和shutdown的最主要的区别是:shutdown会等待所有提交的任务执行完成,不管是正在执行还是保存在任务队列中的已提交任务。而shutdownNow会尝试中断正在执行的任务(其主要是中断一些指定方法如sleep方法),并且停止执行等待队列中提交的任务。中断Sleep任务package com.cweeyii.threadpool;import o原创 2016-10-16 11:48:07 · 1785 阅读 · 0 评论 -
线程池-isShutdown和isTerminated
1.线程池 isShutdown和isTerminated的区别isShutDown当调用shutdown()方法后返回为true。 isTerminated当调用shutdown()方法后,并且所有提交的任务完成后返回为true线程池任务正常完成,都为falsepackage com.cweeyii.threadpool;import org.slf4j.Logger;import org.s原创 2016-10-16 13:57:52 · 16689 阅读 · 0 评论 -
线程池-callable任务
1 带回调的线程池任务Callable接口和Runable接口最大的区别是Callable可以拥有返回值,并可以通过回调的方式获取。同时通过Future的get方法,可以同步的获取到返回值,并保证任务已经完成ps:注意必须调用线程池的shutdown方法,否则主线程(main)线程不会结束,其会保证线程正常关闭后才会退出。package com.cweeyii.threadpool;import o原创 2016-10-16 15:47:37 · 616 阅读 · 0 评论 -
线程池-invokeAll
invokeAllinvoke类方法invokeAll和invokeAny与submit方法方法最大的区别是submit是异步的其不会等待任务的完成,而invoke方法是同步的,其需要等待任务的完成,才能返回public class InvokeAll { private static final Logger LOGGER = LoggerFactory.getLogger(InvokeA原创 2016-10-16 21:53:39 · 5745 阅读 · 1 评论 -
Scheduled线程-schedule
schedule1.schedule方法schedule方法主要使用延迟或者定时执行一次,在指定时间之后。在延迟两秒后提交任务,开始任务的执行public class ScheduledThreadPool { private static final Logger LOGGER = LoggerFactory.getLogger(ScheduledThreadPool.class);原创 2016-10-16 22:42:48 · 2748 阅读 · 0 评论