`
- 浏览:
2873644 次
- 性别:
- 来自:
上海
-
jdk5多线程调度之 ExecutorService + Future使用
例子代码:
java 代码
- import java.util.concurrent.Callable;
- import java.util.concurrent.ExecutionException;
- import java.util.concurrent.ExecutorService;
- import java.util.concurrent.Executors;
- import java.util.concurrent.Future;
- class TimeConsumingTask implements Callable {
- public Person call() throws Exception {
- ExecutorService executor = Executors.newSingleThreadExecutor();
- Future future = executor.submit(new Callable<String>(){
- public String call() throws Exception {
- return "内部线程代码";
- }
-
- });
- String resultString = null;
- try {
- resultString = (String) future.get();
- System.out.printf("内部: %s\n", resultString);
- } catch (InterruptedException e) {
-
- e.printStackTrace();
- } catch (ExecutionException e) {
-
- e.printStackTrace();
- }
-
- return new Person(1,"彭帅");
- }
- }
-
-
- import java.io.DataOutputStream;
- import java.util.concurrent.ExecutionException;
- import java.util.concurrent.ExecutorService;
- import java.util.concurrent.Executors;
- import java.util.concurrent.Future;
-
- public class PersonTest {
- public static void main(String[] args){
- ExecutorService executor = Executors.newSingleThreadExecutor();
- Future future = executor.submit(new TimeConsumingTask());
- Person resultPerson = null;
- try {
- resultPerson = (Person) future.get();
- resultPerson.move(Direction.DOWN);
- } catch (InterruptedException e) {
-
- e.printStackTrace();
- } catch (ExecutionException e) {
-
- e.printStackTrace();
- }
- }
- }
-
- import java.util.Hashtable;
- public class Person {
- private static Hashtable<Direction, String> hashValues = new Hashtable<Direction, String>();
- static{
- for(Direction d: Direction.values()){
- hashValues.put(d, d.name());
- }
- }
-
- private long id;
- private String name;
- public Person(){
-
- }
- public Person(long id, String name) {
- super();
- this.id = id;
- this.name = name;
- }
- public long getId() {
- return id;
- }
- public void setId(long id) {
- this.id = id;
- }
- public String getName() {
- return name;
- }
- public void setName(String name) {
- this.name = name;
- }
- public void move(Direction direct){
- System.out.printf(this.name + " towarding %s", hashValues.get(direct));
- }
- }
-
- public enum Direction {
- UP, DOWN, LEFT, RIGHT;
- }
分享到:
Global site tag (gtag.js) - Google Analytics
相关推荐
对java多线程进行了全面的总结,包括了JDK 5的新特性。
11
tomcat+mysql+jdk脚本安装
框架 eclipse + jdk1.8 or jdk14 + swing + sql server 管理员用户密码 admin 123456 模块介绍 管理员 登陆模块 器材管理模块 消防员管理模块 密码重置模块 关于系统模块 退出模块 数据库设计 使用的数据库是...
JDK7多线程部分类(接口)关系图,根据官网得出
JDK5中的多线程并发库.doc 描述了JDK多线程的并发
JDK1.8+API+中文文档+高清完整版+CHM
jdk 1.9 Google翻译 中文 高清完整版,提供给大家共同参考JDK1.9+API+中文文档+高清完整版+CHM
安装Jdk+tomcat+apache+PHP+mysql(linux).pdf
安装Jdk+Tomcat+Apache+PHP+MySql (Linux) 详细介绍
centos一键安装jdk+mysql+nginx+tomcat+php
jdk+jmeter+ant+tomcat+jenkins虚拟机的安装包
JDK1.5+Tomcat5+MySql+Juddi架设UDDI服务器.pdf
app后台服务Demo(jdk7+tomcat7+maven+jersey+mybatis+spring+jackson)
JDK10绿色压缩版64位+JRE10,本人资源里有JDK1.7以上所有版本,均是绿色版,解压即用。
包含JDK6、JDK7、JDK8,共三个版本。
JDK1.6.0_07+Tomcat5.0+Myeclipse-8.5.0-搭建开发环境
tomcat5.5.25+mysql5.0.45+jdk1.0.5.13+eclipse3.3.1+myeclipse6.0配置