package cn.sasa.demo2; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; public class Test { public static void main... ...
分类:
编程语言 时间:
2018-12-27 18:59:57
阅读次数:
212
Java项目编程中,为了充分利用计算机CPU资源,一般开启多个线程来执行异步任务。但不管是继承Thread类还是实现Runnable接口,都无法获取任务执行的结果。JDK 5中引入了Callable和Future,通过它们执行异步任务可以获取执行结果。FutureTask分析JDK 5中获取任务执行 ...
分类:
编程语言 时间:
2018-12-24 03:00:23
阅读次数:
236
通过实现Runnable接口的实现 package Thread; import java.util.concurrent.ExecutorService;import java.util.concurrent.Executors; public class RunnableThreadDemo { ...
分类:
编程语言 时间:
2018-12-24 02:58:50
阅读次数:
138
Java Callable、Future的两种使用方式Callable+Futurepublic class Test { public static void main(String[] args) { ExecutorService executor = Executors.newCachedT ...
分类:
编程语言 时间:
2018-12-24 02:44:06
阅读次数:
227
Callable和Future出现的原因 创建线程的2种方式,一种是直接继承Thread,另外一种就是实现Runnable接口。 这2种方式都有一个缺陷就是:在执行完任务之后无法获取执行结果。 如果需要获取执行结果,就必须通过共享变量或者使用线程通信的方式来达到效果,这样使用起来就比较麻烦。 而自从 ...
分类:
编程语言 时间:
2018-12-23 23:54:02
阅读次数:
272
最近提交一个spark应用之后发现执行非常慢,点开spark web ui之后发现卡在一个job的一个stage上,这个stage有100000个task,但是绝大部分task都分配到两个executor上,其他executor非常空闲,what happened? 查看spark task分配逻辑 ...
分类:
其他好文 时间:
2018-12-20 22:15:01
阅读次数:
363
DelayQueue是一个无界的BlockingQueue,用于放置实现了Delayed接口的对象,其中的对象只能在其到期时才能从队列中取走。这种队列是有序的,即队头对象的延迟到期时间最长。注意:不能将null元素放置到这种队列中。 Delayed 一种混合风格的接口,用来标记那些应该在给定延迟时间 ...
分类:
其他好文 时间:
2018-12-19 13:21:44
阅读次数:
156
1.使用线程池的好处 2.JUC中几种常用的线程池 java.util.concurrent包下的Executors工厂类,提供了一系列的线程池的创建方法,其构造方法如下: 其中常用的线程池有四种,分别是fixedThreadPool、cachedThreadPool、ScheduledThread ...
分类:
编程语言 时间:
2018-12-11 19:43:10
阅读次数:
218
一、invokeAll Executors支持通过invokeAll()一次批量提交多个callable。这个方法结果一个callable的集合,然后返回一个future的列表。 看一下Executors.newWorkStealingPool()调用源码为: 实际上Runtime.getRunti ...
分类:
编程语言 时间:
2018-12-08 17:10:24
阅读次数:
178
线程池1.什么是线程池.一个用来创建和管理线程的容器;2.线程池的作用.提高线程的复用性,降低资源消耗提高线程的响应速度,提高线程的可管理性3.线程的核心思想;线程的复用 4.线程池的创建ExecutorService pools = Executors.newFixedThreadPool(线程的 ...
分类:
编程语言 时间:
2018-12-06 20:50:04
阅读次数:
227