java多线程
文章平均质量分 78
lichuangcsdn
这个作者很懒,什么都没留下…
展开
-
Future 和 FutureTask用于接收callable的返回值
例子如下:package com.company.demo1; import java.util.Arrays; import java.util.List; import java.util.concurrent.Callable; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executor...原创 2018-06-30 14:29:45 · 1322 阅读 · 0 评论 -
使用CompletableFuture构建异步应用(1)
public static void main(String[] args) throws Exception { ExecutorService executorService = Executors.newFixedThreadPool(3); ThreadTask threadTask = new ThreadTask(); String name = "1"; ...原创 2018-06-30 14:32:34 · 693 阅读 · 0 评论 -
使用CompletableFuture构建异步应用(2)
public static void main(String[] args) { long t1 = System.currentTimeMillis(); ExecutorService executorService = Executors.newFixedThreadPool(4); ThreadCompleteFutureTest threadComplete...原创 2018-06-30 14:33:48 · 462 阅读 · 0 评论 -
ForkJoin使用
Fork/Join框架是Java 7提供的一个用于并行执行任务的框架,是一个把大任务分割成若干个小任务,最终汇总每个小任务结果后得到大任务结果的框架。Fork/Join框架要完成两件事情: 1.任务分割:首先Fork/Join框架需要把大的任务分割成足够小的子任务,如果子任务比较大的话还要对子任务进行继续分割 2.执行任务并合并结果:分割的子任务分别放到双端队列里,然后几个启动线程分别从双端队...原创 2018-06-30 14:35:57 · 1293 阅读 · 1 评论 -
synchronized和ReentrantLock的对比
synchronized: 1、依赖于JVM的底层实现; 2、获取到锁后,再执行完任务或者出现异常时会自动释放锁; 3、是非公平锁,也就是说一个线程可能会多次得到该锁; 4、是重量级锁,是悲观锁,类似于数据库直接加for update进行锁住。 ReentrantLock: 1、是Java的一个类,需要手动编码; 2、获取到锁后,需要手动释放,一般是在finally代码块中进行锁的释...原创 2019-02-22 00:24:40 · 268 阅读 · 0 评论