java创建线程池对象_Java中多线程的使用(超级超级详细)线程池 7

Java中多线程的使用(超级超级详细)线程池 7

什么是线程池?

线程池是一个容纳多个线程的容器,线程池中的线程可以重复使用,无需反复创建线程而消耗过多的资源

*使用多线程的好处:

1.降低消耗,减少了创建和销毁线程的次数,每个线程都可以重复利用,可执行多个任务

2.提高响应速度,任务可以不需要等到线程创建就可以立即执行

3.提高线程的可管理性,根据系统的承受能力,调整线程池中工作线程的数目,防止消耗过多的内存,导致服务器死机

线程池的使用

线程池的顶级接口是java.util.concurrent.Excetor,但是严格意义上来讲,Excutor并不是一个线程池,而只是一个执行线程的工具,真正的线程池接口是java.util.concurrent.ExceutorService,要配置一个线程池是比较复杂的,而且配置的线程池很可能不是最优的,因此java.util.cocurrent.Exceutors线程工程里提供了一些静态工厂,生成一些常用的线程池,官方建议使用Exceutors工程来创建线程池对象

创建线程池的方法

public static ExecutorService newFixedThreadPool(int nThreads) :返回线程池对象。(创建的是有界线 程池,也就是池中的线程个数可以指定最大数量)

获取到了一个线程池ExecutorService 对象,那么怎么使用呢,在这里定义了一个使用线程池对象的方法如下: public Future> submit(Runnable task) :获取线程池中的某一个线程对象,并执行

Future接口:用来记录线程任务执行完毕后产生的结果。线程池创建与使用。

使用线程池中线程对象的步骤

1.创建线程池对象

2.创建Runable接口子类对象

3.提交Runable接口的子类对象

4.关闭线程池

下面使用一段代码来操作一下下

package ThreadPool;

public class MyThread implements Runnable {

@Override

public void run() {

System.out.println("我要吃饭");

try {

Thread.sleep(500);

} catch (InterruptedException e) {

e.printStackTrace();

}

System.out.println("我吃饱了");

}

}

package ThreadPool;

import java.util.concurrent.ExecutorService;

import java.util.concurrent.Executors;

public class Main {

public static void main(String[] args) {

//创建线程池对象

ExecutorService executorService = Executors.newFixedThreadPool(2);

//创建Runable实例对象

MyThread myThread = new MyThread();

executorService.submit(myThread);

executorService.submit(myThread);

executorService.submit(myThread);

}

}

运行结果

fc7b0f1bd671285381f3569f919178a2.png

以上就是线程池的一些基础知识,如有错误还请批评指正,喜欢我的可以点赞收藏,我会不定期跟新文章,可以关注我呀

d102978cad9d74e8c30909bfb9ca7147.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值