java中多线程与线程池怎么用
发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,这篇文章给大家分享的是有关java中多线程与线程池怎么用的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。继承Thread继承Thread去执行任务,确实可以开启一个线程去执行
千家信息网最后更新 2026年11月02日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安全错误
数据库的锁怎样保障安全
互联网科技公司
互联网黑科技
百单网互联网科技有限公司
科技互联网项目
互联网和科技创新
互联网 科技
易通互联网络科技有限公司
上海万想互联网科技
互联网科技视频素材
多迪互联网科技有限公司
联恩商钥互联网科技有限公司
深圳市运趣互联网科技有限公司
农村开互联网科技讲堂
中国互联网有什么科技含量
移动互联网年度科技创新
工业互联网展湾科技股份有限公司
无锡工业互联网科技有限公司
山东星卡互联网科技有限公司官网
电子商务与互联网科技的关系
领航科技大厦互联网公司
互联网中国科技
中国 科技 互联网
壕鑫互联网络科技
时间互联网络科技
火传媒上海互联网科技
受益于互联网科技的高速发展
国大互联网教育科技有限公司工作
烟台灵鸽互联网科技有限公司
互联网对科技影响
科技美学互联网 艺术