Java 并发学习
来源:互联网 发布:淘宝的ipad为什么便宜 编辑:程序博客网 时间:2024/06/05 08:09
一、创建任务 任务可以理解为一段独立执行的代码,它完成一定的功能。 在Java 5及以上版本中不仅可以利用 Runnable接口,还可以利用Callable接口。 两种任务的区别:Runnable 的run()方法完成的任务是没有返回值的 - void 而Callable 的call()方法完成的任务是有返回值的 - 返回值 有接口的泛型<V> 来制定 二、执行任务 通过java.util.concurrent.ExecutorService接口对象来执行任务, 这个接口对象由工具类java.util.concurrent.Executors的静态方法来创建。 相关类及接口说明: Executors 提供建立线程池或线程工厂的方法. ExecutorService 提供了管理终止的方法,以及可为跟踪一个或多个异步任务执行状况而生成 Future 的方法。 Executor 可以简单理解为一个线程的执行者,是Executors 的上一级接口。 Callable 线程要执行而去实现的接口 Future 表示异步计算的结果,对执行的线程的状态检查,可以获得执行结果. 下面以一个例子来说明:
查看输出:
看线程的名字都是类似于“pool-1-thread-4” 的字符串,可是为什么最大的索引是5呢?
对了,这里就与线程池中维护的线程数量有关了 当你改变线程池的大小时,这里的数据时会跟着变的,
service.submit(Callable callable)是来运行 Callable类型的任务,也可运行Runnable类型的任务
而
service.execute(Runnable runnable)只能用来运行 Runnable类型的任务
注:这个execute方法是其父借口java.util.concurrent.Execute中的一个方法
大家也可以试试
ExecutorService service = Executors.newCachedThreadPool();
看输出的名字Thread名字会有什么变化
- Java 并发学习
- Java并发学习笔记
- JAVA并发实践学习
- java并发学习
- java并发学习
- Java并发编程学习
- java 多线程 并发学习
- java并发学习博客
- java并发实践学习
- Java并发学习博客
- Java并发工具包学习
- java ExecutorService 并发学习
- Java并发学习1
- java 并发学习(一)
- java并发学习_day01
- java并发学习_day02
- java并发学习笔记
- java并发学习----CountDownLatch
- C#开发WPF/Silverlight动画及游戏系列教程(转)
- 知足常乐
- mysql的slow-query中的一个现象
- 中国缺乏独立游戏制作大环境(转载)
- Java Socket 编程
- Java 并发学习
- 多选框选中后,输入框可用,包括多列输入框
- 【转】Symbian函数或类与头文件和LIB库对照表
- 传说中的利用SMB协议检测操作系统类型CODE
- Spring Quartz *.QRTZ_LOCKS' doesn't exist
- 100128 13个坏习惯让IT工作者中过劳(转)
- 用java编写多线程ftp断点下载文件程序
- PNG文件格式
- Sql Server排序规则的简介、选择、应用