首页 > 其他分享 >m2_day06 [线程池]

m2_day06 [线程池]

时间:2024-05-11 16:43:21浏览次数:14  
标签:执行器 Executors t2 day06 t3 线程 当中 m2

课程内容:
  • 线程池的概念

  • 线程池的种类

  • 自定义线程池执行器

  • 线程池启动线程


线程池的概念
线程池:
所谓线程池 是一种标准的资源池模式

资源池模式就是在用户出现之前提前预留活跃资源
从而在用户出现的第一时间直接满足用户对资源的需求
并且将资源的新建和销毁操作都委托给资源池完成
从而优化用户体验...

假如一个线程的完整执行时间为T
T = t1 + t2 + t3
t1: 在操作系统当中映射一个线程的时间
t2: 执行线程核心逻辑的时间   run()
t3: 在操作系统当中销毁一个线程的时间
如果run()当中代码非常简短 则t2所占T的比例
就会非常小 此时我们会觉得喧宾夺主付出和回报不成比例

  t1               t2         t3
买菜做饭     享受美食   刷锅刷碗
在路上           上课     在路上

线程池的种类
核心类库当中 提供的常用的线程池种类:
Executors.newFixedThreadPool(int);   固定大小 修复后可重用的
Executors.newCachedThreadPool();     缓存机制的
Executors.newSingleThreadExecutor(); 单一实例的
自定义线程池执行器
自己创建线程池执行器 需要多少个参数 各自代表什么含义
5个
1.线程池当中核心线程数量
2.线程池当中最大线程数量
3.保持活着的时间
4.时间单位
5.一个队列(存储排队的线程任务)

(5,20) submit 60
线程池启动线程
1.应用场景:
 线程的第三种实现方式只能通过线程池启动
 implements Callable<T>
   @Override
   public T call() throws Exception{
  给线程布置任务;
}
return T ;//只能通过线程池启动
2.线程池启动:
 Executors es = Executors.newFixedThreadPool(3);
 Future<T> xx = es.submit(线程对象);//提交执行
 T yy = xx.get();//获取结果
 es.shutdownNow();//关闭服务

标签:执行器,Executors,t2,day06,t3,线程,当中,m2
From: https://www.cnblogs.com/zhaodenghui33/p/18186734

相关文章

  • 线程安全队列(使用互斥锁进行实现)
    线程安全队列(使用互斥锁进行实现)没有设置队列上限的线程安全队列只需要采取一个std::condition_variable变量,用于处理队列为空的情况以下是示例代码,涉及了std::mutex和std::condition_variable、std::unique_lock、std::lockguard等多线程交互的类。测试方式采取的是3个生成者......
  • Java面试题:Spring Bean线程安全?别担心,只要你不写并发代码就好了!
    Spring中的Bean是否线程安全取决于Bean的作用域(scope)。Spring提供了几种不同的Scope,其中包括Singleton、Prototype、Request、Session、GlobalSession等。 SingletonScope(单例模式)默认情况下,SpringBean是SingletonScope,这意味着在整个应用程序上下文中只有一个实例。......
  • C#实现多线程的几种方式
    前言多线程是C#中一个重要的概念,多线程指的是在同一进程中同时运行多个线程的机制。多线程适用于需要提高系统并发性、吞吐量和响应速度的场景,可以充分利用多核处理器和系统资源,提高应用程序的性能和效率。多线程常用场景CPU密集型任务.I/O密集型任务.并发请求处理.大数......
  • m2_day01 [集合内容回顾]
    课程内容:集合复习集合复习Java集合框架JCF​ CollectionMap​List   SetSortedMap​SortedSet各类集合的特点List:[有序不唯一]Set:[唯一]SortedSet:[有序唯一]Map:[主键......
  • m2_day02 [内部类]
    课程内容:什么是内部类?成员内部类静态内部类局部内部类匿名内部类Java中如何完成数据共享什么是内部类?什么是内部类?指定义在一个类型(类/接口)当中的类被称为内部类为什么要使用内部类?1.内部类是Java当中共享数据最简单的方式之一2.它还能用来表达类......
  • m2_day03 [异常]
    课程内容:什么是异常?为什么要处理异常?如何处理异常?什么是异常?Java当中所有“问题”的体系结构    Throwable[可以向外抛出的]​ErrorException [错误] [异常]​RuntimeException......
  • m2_day04 [线程]
    课程内容:线程的概念引用多线程的原因?如何实现线程?如何控制线程?线程类其它常用方法线程的概念线程所在包:java.lang.Thread理解程序进程线程之间的区别:程序:保存在物理介质中的代码片段​进程:一旦程序运行起来就变成了操作系统当中的一个进程......
  • m2_day06 [线程池]
    课程内容:线程池的概念线程池的种类自定义线程池执行器线程池的概念线程池:所谓线程池是一种标准的资源池模式​资源池模式就是在用户出现之前提前预留活跃资源从而在用户出现的第一时间直接满足用户对资源的需求并且将资源的新建和销毁操作都委托......
  • m2_day05 [线程]
    课程内容:什么是并发错误?如何解决并发错误?什么是死锁?如何解决死锁?锁池和等待池的区别什么是并发错误?并发错误的概念多个线程共享操作同一份数据的时候线程体当中连续的多行操作未必能够连续执行很可能操作只完成另一部分时间片就突然耗尽此时......
  • m2_day2
    课程内容:搭建开发环境配置环境变量第一个程序HelloWorldJava中的软件包结构搭建开发环境:安装jdkwww.Oracle.comSDK=softwaredevelopmentkits=软件开发工具包JDK=java+SDK=java软件开发工具包JRE=javaruntimeenvironment=java运行环境JD......