Java的多线程和线程池的使用
发布时间:2025-11-05 08:49:50 作者:玩站小弟
我要评论
多线程大大提高程序运行效率,我们在开发过程中经常会开启一个线程来执行一些费时的任务。开启一个线程有4种方式,在下面的文章我将详细的去讲解。继承Thread继承Thread去执行任务,确实可以开启一个线
。
多线程大大提高程序运行效率,多的使我们在开发过程中经常会开启一个线程来执行一些费时的线程任务。开启一个线程有4种方式,和线在下面的程池文章我将详细的去讲解。

继承Thread
继承Thread去执行任务,多的使确实可以开启一个线程去执行任务,线程如果经常的和线去开启一些线程,也会导致系统资源的程池浪费。
public static class Mythread extends Thread{ @Override public void run() { System.out.println("当前线程"+Thread.currentThread().getId()); int i = 10/2; System.out.println("运行结果"+i); } } //调用线程。多的使 public static void main(String[] args) throws ExecutionException,线程 InterruptedException { /**thread执行方式*/ Mythread mythread = new Mythread(); mythread.start();//启动线程 System.out.println("main--end"); }实现Runnale接口。
public static class MyRunable implements Runnable { @Override public void run() { System.out.println("当前线程"+Thread.currentThread().getId()); int i = 10/2; System.out.println("运行结果"+i); } }调用。和线
/** * runable的程池启动方式 */ MyRunable runable = new MyRunable(); new Thread(runable).start(); System.out.println("main--end");Callable
/** * Callable可以允许有返回值 */ public static class Callale01 implements Callable<Integer> { @Override public Integer call() throws Exception { System.out.println("当前线程"+Thread.currentThread().getId()); int i = 10/2; System.out.println("运行结果"+i); return i; } }调用。这里需要用callable构建futureTask
/** * callale的多的亿华云计算使启动方式 */ FutureTask<Integer> futureTask =new FutureTask<>(new Callale01()); //取返回结果。 Integer i = futureTask.get(); new Thread(futureTask).start(); System.out.println("返回结果是线程:"+i);线程池
线程池才是我们java开发中,经常用到一种开启多线程的和线方式,线程池,自己去管理线程。可以节省系统资源。通常我们会将下面的一些配置写在一些配置类中
/** * 七大参数 * corePoolSize: 1.核心线程数[一直存在]: 线程池创建好了以后。就准备就绪的线程数量。 * maxinumPoolSize: 2 最大线程数量 * keepaliveTime: 存活时间。空闲线程的最大的等待时间。 * unit 等待时间的单位 * blockingQueue 阻塞队列。如果任务很多就会放在队列里面,只要有线程空闲了,就会去队列里面去取。云南idc服务商 * threadFactory :线程的工厂。 * RejectExecutionHandler :如果队列满了。按照我们指定的策略。拒绝执行任务。 * */ ThreadPoolExecutor executor = new ThreadPoolExecutor(5,100,10,TimeUnit.SECONDS, new LinkedBlockingQueue<>(100), Executors.defaultThreadFactory(),new ThreadPoolExecutor.AbortPolicy());常见的4种线程池。
1 newCachedThreadPool()
创建一个可缓存的线程池,如果线程池长度超过了处理的需要,可灵活的回收空闲线程。若无可回收。则创建新线程。
Executors.newCachedThreadPool();2.newFixedThreadPool(6)
创建一个固定大小的线程池。
3 newScheduledThreadPool()
定时任务的线程池。
4.newSingleThreadExecutor()
Executors.newSingleThreadExecutor();相关文章
vivo手机4寸屏手机的特点与优势(小巧便携,功能强大,实用性超越预期)
摘要:随着科技的不断发展,手机已经成为人们生活中必不可少的工具。而在众多手机品牌中,vivo以其出色的性能和创新的设计赢得了众多消费者的喜爱。本文将重点介绍vivo手机4寸屏手机的特点和...2025-11-05
Gartner安全运营成熟度曲线:XDR、SOAR 泡沫破裂;EDR、SIEM 进入生产成熟期
日前,Gartner 发布了最新的安全运营成熟度曲线报告Gartner Hype Cycle for Security Operations, 2024),报告将与安全运营相关的 23 项热点技术按照2025-11-05Windows 10秘笈:如何使用PowerShell批量新建文件夹
复制mkdir$(1..10|%{"IThome$_"}) 1.2025-11-05
引言随着人工智能、大数据分析和高性能计算需求的爆发式增长,智算中心已成为数字经济时代的核心基础设施。在智算中心的硬件架构中,CPU中央处理器)和GPU图形处理器)作为两类最重要的计算芯片,各自扮演着不2025-11-05电脑引导错误及解决方法(探究电脑引导错误的原因及有效解决方案)
摘要:随着电脑的普及和使用,许多人都会遇到电脑引导错误的问题。当我们开机时,如果出现引导错误,将导致无法正常启动操作系统。究竟什么是电脑引导错误,为什么会出现这样的问题,又该如何有效解决...2025-11-05
WPS Office作为一款用户基数超过2亿的广泛使用的办公套件,被发现存在两个关键漏洞CVE-2024-7262和CVE-2024-7263),这些漏洞可能导致用户遭受远程代码执行攻击。这两个漏洞的2025-11-05

最新评论