concurrent包源码解读
Anakki
后端开发/风光摄影师/驴友/航拍手/后期小佬/火星居民
展开
-
ThreadPoolExecutor线程池的四种拒绝策略
比如主线程将任务提交给线程池时,如果线程池因为工作线程已经大于线程池线程容量了,线程池会调用对应的拒绝策略。直接抛出RejectedExecutionException异常,并指示任务的信息,线程池的信息。DiscardOldestPolicy:如果线程池拒绝了任务,直接将线程池中最旧的,可以看见源码逻辑为,先判断线程池还未关闭,然后直接r.run运行了任务。DiscardPolicy:如果线程池拒绝了任务,直接丢弃。AbortPolicy:如果线程池拒绝了任务,直接报错。任务丢弃,将新任务入队。原创 2022-10-05 23:02:52 · 4068 阅读 · 0 评论 -
Unsafe.compareAndSwapInt()方法解读
代码:/*** Atomically update Java variable to <tt>x</tt> if it is currently* holding <tt>expected</tt>.* @return <tt>true</tt> if successful*/public final nat...原创 2019-08-24 02:31:37 · 27686 阅读 · 2 评论 -
Future接口(源码解读)
Future接口源码解读:此接口有5个方法boolean cancel(boolean mayInterruptIfRunning);此方法目的是想让其实现类实现以下功能:尝试取消一个任务的执行。当任务已经执行结束后,或已经被取消执行后,或者因为其他原因不能被取消任务执行时,返回false。当cancel调用时,如果任务还未开始执行,那么任务将会直接取消并永远不会执行,返...原创 2019-08-23 15:28:17 · 462 阅读 · 0 评论 -
FutureTask类(源码解读)
目录一.源码解读1.1 FutureTask(Callable callable)1.2 FutureTask(Runnable runnable, V result)1.3 FutureTask类的一些常量和属性1.3.1 任务当前状态 state1.3.2 任务7种状态属性:1.3.3 存放返回结果 outcome:1.3.4 指向传入的实现了Callable接...原创 2019-08-24 17:46:55 · 1514 阅读 · 1 评论 -
RunnableFuture接口(源码解读)
此接口继承了Runnable和Future接口。其中Runnable接口中就只有一个run方法,用于执行任务。 其中Future接口中主要有:对任务的执行进行取消操作。判断任务是否被取消。判断任务是否被执行完成。获取任务返回的结果。至此RunnableFuture接口想要其实现类实现的功能就是相当于一个拥有run方法的future接口。可以执行任务。可以取消...原创 2019-08-23 15:50:42 · 1170 阅读 · 0 评论