您的位置:首页 > 编程语言 > Java开发

NET-JAVA 五

2015-10-16 15:11 519 查看

学习:IO、多线程、 

(以下内容只包含部分学习内容,所有例子基本百度上可以找到。)

 IO : url:http://blog.sina.com.cn/s/blog_a0e7e34c01017xko.htmlurl:http://blog.sina.com.cn/s/blog_a0e7e34c01017xko.html

多线程:

package MyThreadTest;

 

import java.util.concurrent.*;

import java.util.Date;

import java.util.List;

import java.util.ArrayList;

 /**

 * 有返回值的线程

 */

 @SuppressWarnings("unchecked")

 public class Test2  {

 public static void main(String[] args) throws ExecutionException,

     InterruptedException {

    System.out.println("----程序开始运行----");

    Date date1 = new Date();

    int taskSize = 5;

    // 创建一个线程池

    ExecutorService pool = Executors.newFixedThreadPool(taskSize);

    // 创建多个有返回值的任务

    List<Future> list = new ArrayList<Future>();

   

    for (int i = 0; i < taskSize; i++) {

     Callable c = new MyCallable(i + " ");

     // 执行任务并获取Future对象

     Future f = pool.submit(c);

     // System.out.println(">>>" + f.get().toString());

     list.add(f);

    }

    // 关闭线程池

    pool.shutdown();

    // 获取所有并发任务的运行结果

    for (Future f : list) {

     // 从Future对象上获取任务的返回值,并输出到控制台

     System.out.println(">>>" + f.get().toString());

    }

    Date date2 = new Date();

    System.out.println("----程序结束运行----,程序运行时间【"

      + (date2.getTime() - date1.getTime()) + "毫秒】");

 }

 }

 class MyCallable implements Callable<Object> {

 private String taskNum;

 MyCallable(String taskNum) {

    this.taskNum = taskNum;

 }

 public Object call() throws Exception {

    System.out.println(">>>" + taskNum + "任务启动");

    Date dateTmp1 = new Date();

    Thread.sleep(1000);

    Date dateTmp2 = new Date();

    long time = dateTmp2.getTime() - dateTmp1.getTime();

    System.out.println(">>>" + taskNum + "任务终止");

    return taskNum + "任务返回运行结果,当前任务时间【" + time + "毫秒】";

 }

 }
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  多线程 IO