java中多线程与线程池怎么用
发表于:2025-02-01 作者:千家信息网编辑
千家信息网最后更新 2025年02月01日,这篇文章给大家分享的是有关java中多线程与线程池怎么用的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。继承Thread继承Thread去执行任务,确实可以开启一个线程去执行
千家信息网最后更新 2025年02月01日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安全错误
数据库的锁怎样保障安全
武汉学软件开发哪里好
青海双线服务器云服务器
网络安全维护技术咨询成果
测数据库并发
2017网络安全宣传片
北京互联网科技研究院是什么
微信扫码显示服务器未响应
网络安全大作业选题
深圳市彩帛网络技术有限公司
网络安全项目保密制度
手机qq邮箱发件服务器配置有误
开服务器违法么
香港服务器无需实名
什么是企业级软件开发
网络安全公司申
3d打印软件开发招聘
国家网络安全战略部署
嵌入式软件开发区烤肉
C 手机软件开发工程师
福州电子软件开发
盲盒软件开发定制
南方互联网络科技有限公司
十八大以来网络安全宣传
阿里地区网络安全宣传
全国计算机网络技术三级题库
利用gis的软件开发
网络技术获得了群体性突破
青海gps时钟同步数显钟服务器
金融软件开发是干嘛的
路由器管理里的虚拟服务器是什么