本月博客排行
-
第1名
龙儿筝 -
第2名
johnsmith9th -
第3名
wy_19921005 - zysnba
- sgqt
- lemonhandsome
年度博客排行
-
第1名
宏天软件 -
第2名
青否云后端云 -
第3名
龙儿筝 - gashero
- wallimn
- vipbooks
- benladeng5225
- wy_19921005
- fantaxy025025
- e_e
- zysnba
- ssydxa219
- sam123456gz
- javashop
- arpenker
- tanling8334
- kaizi1992
- xpenxpen
- wiseboyloves
- xiangjie88
- ranbuijj
- ganxueyun
- sichunli_030
- xyuma
- wangchen.ily
- jh108020
- lemonhandsome
- zxq_2017
- jbosscn
- Xeden
- luxurioust
- lzyfn123
- johnsmith9th
- zhanjia
- forestqqqq
- nychen2000
- ajinn
- wjianwei666
- hanbaohong
- daizj
- 喧嚣求静
- mwhgJava
- silverend
- kingwell.leng
- lchb139128
- lich0079
- kristy_yy
- jveqi
- java-007
- sunj
最新文章列表
Java的多线程
1,线程的状态转换:
新建,可运行,运行中,阻塞(等待锁),等待(不确定的等待和指定时间的等待),结束。
线程的join方法和yield方法;
join方法:
线程A中调用线程B的join方法,则线程A将会等待线程B运行结束之后再继续运行。
yield方法:
线程调用yield方法,则是让当前正在运行的线程,把CPU时间片让给相同优先级的其他线程去运行。
...
ExecutorService
import java.util.concurrent.ArrayBlockingQueue;
import java.util.concurrent.BlockingQueue;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.uti ...
JDK中ExecutorService,Callable,Future对线程的支持
1、代码背景:
假如有Thread1、Thread2、Thread3、Thread4四条线程分别统计C、D、E、F四个盘的大小,所有线程都统计完毕交给Thread5线程去做汇总,应当如何实现?
2、代码:
统计“盘子”大小的代码,此处实现jdk中的Callable接口,
package com.wang.test.concurrent;
import java.uti ...
ExecutorService
ExecutorService
1.
线程池的意义:
维护一定数量的线程,
线程执行任务的开销,不在于任务执行的时间,而是线程的创建以及销毁
所以,创建线程后,在线程完成任务后,不让线程立即销毁,而是保持线程的活跃性
当再有任务来时,让活着的线程继续工作
ThreadPoolExecutor(
int corePoolSize, // 核心线程池大小
int maximumPoolSi ...
Java之 java.util.concurrent 包之ExecutorService之submit () 之 Future
一、如何使用 ExecutorService.submit() ?
submit()
可以接受 Callable 或 Runnable 对象。
返回值是 Future 对象(调用 Future 对象的 get() 方法会导致主线程阻塞)。
二、程序
import java.util.concurrent.Callable;
import java.util.concurren ...
Java之 java.util.concurrent 包之Executor与ExecutorService
一、问题: execute() 与 submit() 的区别?
execute()
来自 Executor 接口,
没有返回值,
只接受 Runnable 对象。
submit()
来自 ExecutorService 接口( ExecutorService 接口继承了 Executor 接口)
返回 Future 对象
可以接受 Callable, Runnable 对象。
二、程 ...
Java之 java.util.concurrent 包之概述
一、概述:java.util.concurrent (Java 并发编程工具包 ) Ref- jenkov
从 JDK1.5 开始新增了一个包:java.util.concurrent,这个包包含了一组Java类,它们使多线程开发变得容易。在新增这个包之前,你需要自己写这些工具类。
在本文中,我(用JDK1.6)将与你介绍一下这个包(java.util.concurrent)里面的类,挨个介绍。 ...
主线程等待几个子线程执行完成方案
有时,为了程序的性能,我们有必要对程序中的for循环(含有sql/rpc操作)进行并发处理,要求是并发处理完之后才能继续执行主线程。现给出如下两种方案:
1. CountDownLatch
package com.itlong.whatsmars.base.sync;
import java.util.concurrent.CountDownLatch;
/**
* ...
ExecutorService线程池
一.ExecutorService 建立多线程的步骤
1.定义线程类
class Handler implements Runnable{
}
2.建立ExecutorService线程池
ExecutorService executorService = Executors.newCachedThreadPool();
或者
int cpuNums = Runtime.getRu ...
ExecutorService对象的shutdown()和shutdownNow()的区别
从上篇文章的实例中,我们用了ExecutorService的shutdown方法,但我们不难发现它还有shutdownNow方法,它们到底有什么区别呢?
这两个方法都可以关闭 ExecutorService,这将导致其拒绝新任务。shutdown() 方法在终止前允许执行以前提交的任务,而 shutdownNow() 方法阻止等待任务启动并试图停止当前正在执行的 ...
ExecutorService | Executor框架
Excutor框架结构图:
上一篇讲了Executor接口,本篇来讲一下ExecutorService接口,从图中可以看出ExecutorService扩展了Executor接口,一般扩展后,都会新增一些功能方法,它有哪些新方法呢?
一:关于ExecutorService的源码
package java.util.concurrent;
import java.util ...
Executor入门 | Executor框架
讲到并发就不得不讲一下Executor框架,其框架主要类关系图如下:
从图中可以看出来,接口Executor是框架知识点的引路者,那就从它讲起!
一:关于Executor的源码
/*
* ORACLE PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
* Written by Doug Lea ...
ExecutorService
一.ExecutorService:
它也是一个接口,它扩展自Executor接口,Executor接口更像一个抽象的命令模式,仅有一个方法:execute(runnable);Executor接口简单,但是很重要,重要在这种设计的模式上。。
ExecutorService在Executor的基础上增加了“service”特性的方法:
shutdown()、shutdownNow( ...
java-Runtime钩子回调
----------~开篇分享一句话:【纸上得来终觉浅,绝知此事要躬行】~---------------------------------------
在线上Java程序中经常遇到进程程挂掉,一些状态没有正确的保存下来,这时候就需要在JVM关掉的时候执行一些清理现场的代码。Java中得ShutdownHook提供了比较好的方案。
JDK在1.3之后提供了Java Runtime.addShut ...
Java 的ExecutorService
早期在Java5以前,我们做多线程程序,一般都用原生的Java的多线程API,比如 new Thread(), start ,wait,notify等 ,如果想实现并行任务,那么一般都是For循环来处理。在java 5以后,Sun公司给我们提供了一个比较好用的框架,那就是ExecutorService。新特征中,可以很容易控制线程的启动、执行和关闭过程,还可以很容易使用线程池的特 性 ...
ExecutorService的十个使用技巧
ExecutorService](https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ExecutorService.html)这个接口从Java 5开始就已经存在了。这得追溯到2004年了。这里小小地提醒一下,官方已经不再支持Java 5, Java 6了,Java 7[在半年后也将停止支持。我之所以会提起Executor ...
Java并发编程 - Executor,Executors,ExecutorService, CompletionServie,Future,Callable
一、Exectuor框架简介
Java从1.5版本开始,为简化多线程并发编程,引入全新的并发编程包:java.util.concurrent及其并发编程框架(Executor框架)。 Executor框架是指java 5中引入的一系列并发库中与executor相关的一些功能类,其中包括线程池,Executor,Executors,ExecutorService,Completio ...