executorservice和executor_source counter

executorservice和executor_source counter1、创建一个WorkerThread类,表示执行任务publicclassWorkerThreadimplementsRunnable{ @Override publicvoidrun(){ System.out.println("当前时间:"+System.currentTimeMillis()+"线程名称:" +Thread.currentT…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

1、创建一个WorkerThread类,表示执行任务

public class WorkerThread implements Runnable {

	@Override
	public void run() {
		System.out.println("当前时间:" + System.currentTimeMillis() + " 线程名称:"
				+ Thread.currentThread().getName() + " 状态: start work...");
		try {
			Thread.sleep(1000);
		} catch (InterruptedException e) {
			e.printStackTrace();
		}
		System.out.println("当前时间:" + System.currentTimeMillis() + " 线程名称:"
				+ Thread.currentThread().getName() + " 状态: end   work...");
	}

}

2、创建ExecutorService,并提交10个任务(线程池有5个固定的线程)

import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;

public class ThreadPoolTest {

	public static void main(String[] args) {
		System.out.println("开启线程池...");
		ExecutorService executorService = Executors.newFixedThreadPool(5);
		for (int i = 0; i < 10; i++) {
			Runnable worker = new WorkerThread();
			executorService.execute(worker);
		}
		try {
			Thread.sleep(5000);//主线程休眠5秒,便于观察
		} catch (InterruptedException e) {
			e.printStackTrace();
		}
		executorService.shutdown();
		System.out.println("线程池运行结束...");
	}

}

3、Executors中的静态方法来创建一个线程池:

newFixedThreadPool:创建一个固定长度的线程池

newCachedThreadPool:创建一个可缓存的线程池,长度随着需求的变化而变化,线程池的规模不存在任何限制。

newSingleThreadExecutor:是一个单线程的Executor。

newScheduledThreadPool:创建一个固定长度的线程池,而且以延迟或定时的方式来执行任务。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/195210.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • C-V2X 频点-频段简介[通俗易懂]

    C-V2X 频点-频段简介[通俗易懂]1.缩略语1.Bband频段一个频率的范围或者频谱的宽度2.ULUplink上行链路3.DLDownlink下行链路4.EARFCNE-UTRAAbsoluteRadioFrequencyChannelNumber载波频点号5.FULF_{UL}FUL​FrequencyUplink载频上行频率6.NULN_{UL}NUL​EARFCNUplink载频上行频点号7.FDLF_{DL}FDL​FrequencyDownlink 载频下行频率8.

  • 2020最全JVM垃圾回收机制面试题整理,阿里面试官最爱问的都在这里了(附答案)

    2020最全JVM垃圾回收机制面试题整理,阿里面试官最爱问的都在这里了(附答案)前言为什么需要垃圾回收首先我们来聊聊为什么会需要垃圾回收,假设我们不进行垃圾回收会造成什么后果,我们举一个简单的例子我们住在一个房子里面,我们每天都在里面生活,然后垃圾都丢在房子里面,又不打扫,最后房子都是垃圾我们是不是就没法住下去了。所以JVM垃圾回收机制也是一样的,当我们创建的对象占据堆空间要满了的的时候我们就对他进行垃圾回收,注意java的垃圾回收是不定时的,c语言的是需要去调用垃圾回收方法刚刚也说到上面举的例子也说到假设一个房子都被垃圾堆满了那么我们没法住人了那么我们是不是会告

  • Android 屏幕旋转 处理 AsyncTask 和 ProgressDialog 的最佳方案

    Android 屏幕旋转 处理 AsyncTask 和 ProgressDialog 的最佳方案转载请表明出处:http://blog.csdn.net/lmj623565791/article/details/379362751、概述众所周知,Activity在不明确指定屏幕方向和configChanges时,当用户旋转屏幕会重新启动。当然了,应对这种情况,Android给出了几种方案:a、如果是少量数据,可以通过onSaveInstanceState()和onRestoreI

  • Python2和Python3的区别,以及为什么选Python3的原因

    Python2和Python3的区别,以及为什么选Python3的原因我的机器学习教程「美团」算法工程师带你入门机器学习已经开始更新了,欢迎大家订阅~任何关于算法、编程、AI行业知识或博客内容的问题,可以随时扫码关注公众号「图灵的猫」,加入”学习小组“,沙雕博主在线答疑~此外,公众号内还有更多AI、算法、编程和大数据知识分享,以及免费的SSR节点和学习资料。其他平台(知乎/B站)也是同名「图灵的猫」,不要迷路哦~学…

  • 使用prometheus和grafana监控springboot应用

    使用prometheus和grafana监控springboot应用

  • es6类型转换_es6转换es5

    es6类型转换_es6转换es5>虽然我觉得没什么用,但是记一下吧[TOC]####1.新建项目项目目录结构:![](https://box.kancloud.cn/1e80da2d1c4c01681a65023089a9f18a_229x108.png)####2.src中的**index.js**为你写的es6语法代码我们例子写:“`letb=1;console.log(b);constname=”…

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号