基于newFixedThreadPool实现多线程案例

网友投稿 448 2023-03-14

基于newFixedThreadPool实现多线程案例

基于newFixedThreadPool实现多线程案例

1、异步提交,串行改为并行处理

package com.hao.thread;

import java.util.ArrayList;

import java.util.List;

import java.util.concurrent.ExecutorService;

import java.util.concurrent.Executors;

import java.util.concurrent.Future;

public class ThreadTest {

public static void main(String[] args) {

long start = System.currentTimeMillis();

System.out.println(action());

long end = System.currentTimeMillis();

System.out.println(end - start);

}

public static List action() {

List list = new ArrayList();

ExecutorService pool = Executors.newFixedThreadPool(3);

Future submit1 = pool.submit(() -> action1("action1"));

Future submit2 = pool.submit(() -> action2("action2"));

Future submit3 = pool.submit(() -> action3("action3"));

try {

list.add(submit1.get());

list.add(submit2.get());

list.add(submit3.get());

} catch (Exception e) {

e.printStackTrace();

} finally {

pool.shutdown();

}

return list;

}

private static String action1(String action1) {

sleep(5000);

return action1 + " # " + Thread.currentThread().getName();

}

private static String action2(String action2) {

sleep(5000);

return action2 + " # " + Thread.currentThrebSFVahwKphad().getName();

}

private static String action3(String action3) {

sleep(5000);

return action3 + " # " + Thread.currentThread().getName();

}

private static void sleep(long millis) {

try {

Thread.sleep(millis);

} catch (InterruptedException e) {

e.printStackTrace();

}

}

}

2、处理结果

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:小程序助手插件(小程序助手插件怎么安装)
下一篇:小程序运行环境(小程序运行环境是什么)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~