zoukankan      html  css  js  c++  java
  • 通过线程池创建线程

    package thread;

    import java.util.concurrent.*;

    /**
    * @auto dh
    * @create 2020-03-29-0:04
    */
    class Th0009 implements Callable<Integer>{
    private int sum=0;
    public Integer call(){
    for(int i=1;i<=100;i++){
    sum+=i;
    }
    return sum;
    }
    }
    class Th009 implements Runnable {
    public void run() {
    for (int i = 0; i <= 100; i++) {
    if (i % 2 == 0) {
    System.out.println(Thread.currentThread().getName()+":"+i);
    }

    }
    }
    }

    public class Thread009 {
    public static void main(String[] args) {

    Th009 th=new Th009();
    Th0009 t1=new Th0009();
    // 1、通过Executors工具类来创建线程池对象
    ExecutorService executorService = Executors.newFixedThreadPool(12);
    // 2、execute()用来处理Runnable接口
    executorService.execute(th);
    // submit()用来处理Callable接口
    FutureTask future= new FutureTask(t1);
    Future future1= executorService.submit(future);

    try {
    // 通过FutureTask对象的get()方法获取线程的返回值
    System.out.println("当前线程的返回值:"+future.get());
    } catch (InterruptedException e) {
    e.printStackTrace();
    } catch (ExecutionException e) {
    e.printStackTrace();
    }
    // 3、关闭线程池
    executorService.shutdown();
    }
    }
  • 相关阅读:
    类加载器ClassLoader
    JAVA分别获取日期中的年、月、日
    sql 安全问题
    马尔科夫链
    触发器、锁、事务和事务控制
    索引、视图、存储过程、函数、游标
    字符集
    数据类型选择
    存储引擎
    错误:too many indices for array
  • 原文地址:https://www.cnblogs.com/kukai/p/12590465.html
Copyright © 2011-2022 走看看