java中多线程与线程池怎么用
发表于:2025-11-11 作者:千家信息网编辑
千家信息网最后更新 2025年11月11日,这篇文章给大家分享的是有关java中多线程与线程池怎么用的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。继承Thread继承Thread去执行任务,确实可以开启一个线程去执行
千家信息网最后更新 2025年11月11日java中多线程与线程池怎么用继承Thread
这篇文章给大家分享的是有关java中多线程与线程池怎么用的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。
继承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{ @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的启动方式 */FutureTaskfutureTask =new FutureTask<>(new Callale01());//取返回结果。Integer i = futureTask.get();new Thread(futureTask).start();System.out.println("返回结果是:"+i);
线程池
线程池才是我们java开发中,经常用到一种开启多线程的方式,线程池,自己去管理线程。可以节省系统资源。通常我们会将下面的一些配置写在一些配置类中
/** * 七大参数 * corePoolSize: 1.核心线程数[一直存在]: 线程池创建好了以后。就准备就绪的线程数量。 * maxinumPoolSize: 2 最大线程数量 * keepaliveTime: 存活时间。空闲线程的最大的等待时间。 * unit 等待时间的单位 * blockingQueue 阻塞队列。如果任务很多就会放在队列里面,只要有线程空闲了,就会去队列里面去取。 * 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();
感谢各位的阅读!关于"java中多线程与线程池怎么用"这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!
线程
任务
结果
方式
队列
时间
空闲
运行
最大
内容
数量
更多
篇文章
系统
资源
配置
不错
实用
七大
单位
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
软件开发好学么
sql查看数据库空间命令
小赢科技互联网金融骗局
吴江区网络安全监察大队
数据库安全性控制注意的地方
最严重的网络安全问题
诛仙连接服务器失败
思讯数据库恢复
吱信上海网络技术是干啥的
有寓意的软件开发名字
怎么连外国服务器视频
使独立服务器成为域成员控制器
远程访问修改服务器数据库
职场小说软件开发
oss服务器
arduino数据库传感器
网络安全有哪些范围
兰州网络技术产品介绍
成都网络安全工程师年薪
生产服务器是不是不能停机
网络技术和多媒体行业知识
数据库o
众邦科技互联网机器人
qq 代理服务器
打印机网络安全密匙
网络安全与防护第十章答案
网络安全与道德
深圳富盟网络技术
奇安信产常用网络安全产品
香港联想服务器保修