当前位置: 首页 > news >正文

做电影下载网站需要什么软件好客户管理crm系统哪家好

做电影下载网站需要什么软件好,客户管理crm系统哪家好,四川专业旅游网站制作,网站建设费用估计1.线程池基础概念线程池是一种资源复用技术,通过预先创建并管理一组线程,减少频繁创建和销毁线程的开销。核心思想与数据库连接池、字符串常量池类似,旨在提升系统性能。核心参数解析ThreadPoolExecutor构造函数包含7个关键参数:c…

1.线程池基础概念

线程池是一种资源复用技术,通过预先创建并管理一组线程,减少频繁创建和销毁线程的开销。核心思想与数据库连接池、字符串常量池类似,旨在提升系统性能。

  • 核心参数解析

  • ThreadPoolExecutor构造函数包含7个关键参数:
    • corePoolSize:核心线程数,长期保持活跃的线程数量。
    • maximumPoolSize:线程池最大容量,包括核心线程和非核心线程。
    • keepAliveTime:非核心线程空闲存活时间。
    • unit:存活时间单位(如秒、毫秒)。
    • workQueue:任务队列,用于存放待执行任务(如ArrayBlockingQueueLinkedBlockingQueue)。
    • threadFactory:自定义线程创建逻辑。
    • handler:拒绝策略(如AbortPolicy抛出异常、CallerRunsPolicy由提交线程执行任务)。

线程池工作流程

  1. 任务提交后,优先使用核心线程处理。
  2. 核心线程全忙时,任务进入工作队列。
  3. 队列满后,启用非核心线程(不超过maximumPoolSize)。
  4. 线程和队列均满时,触发拒绝策略。

拒绝策略类型

  • AbortPolicy:直接抛出RejectedExecutionException
  • CallerRunsPolicy:提交任务的线程自行执行任务。
  • DiscardOldestPolicy:丢弃队列中最老的任务。
  • DiscardPolicy:静默丢弃新提交的任务。

任务提交方法

  • execute(Runnable task):无返回值,适用于异步任务。
  • submit(Callable<T> task):返回Future<T>,可获取执行结果。

线程池关闭

  • shutdown():平滑关闭,等待所有任务完成。
  • shutdownNow():立即中断所有线程,返回未执行任务列表。

    2.线程池的工作流程


3.ThreadLocal原理与应用

ThreadLocal为每个线程提供独立的变量副本,解决多线程共享变量的线程安全问题。

基本使用
static ThreadLocal<Integer> threadLocal = ThreadLocal.withInitial(() -> 1);public static void main(String[] args) {new Thread(() -> {threadLocal.set(10);threadLocal.set(threadLocal.get() + 5);System.out.println(Thread.currentThread().getName() + ":" + threadLocal.get());threadLocal.remove(); // 防止内存泄漏}).start();new Thread(() -> {threadLocal.set(20);threadLocal.set(threadLocal.get() + 10);System.out.println(Thread.currentThread().getName() + ":" + threadLocal.get());threadLocal.remove();}).start();
}

内存泄漏问题

ThreadLocal的键(ThreadLocal对象)被弱引用管理,值(变量副本)为强引用。若ThreadLocal实例被回收,但线程未终止,Entry中的值会持续占用内存。
解决方案

  • 显式调用remove()清理Entry。
  • 避免长生命周期线程(如线程池线程)使用ThreadLocal时未清理。
引用类型对比
  • 强引用:对象被直接引用,不会被GC回收(Object obj = new Object())。
  • 软引用SoftReference):内存不足时回收,适合缓存场景。
  • 弱引用WeakReference):GC时立即回收,常用于ThreadLocal键。

线程创建方式总结

  1. 继承Thread类:重写run()方法。
  2. 实现Runnable接口:更灵活,推荐使用。
  3. 实现Callable接口:可返回结果,配合FutureTask使用。
  4. 线程池:高效管理线程资源,实际开发首选。

通过合理使用线程池和ThreadLocal,可显著提升多线程程序的性能和安全性。

http://www.dtcms.com/a/608551.html

相关文章:

  • 网站招聘栏怎么做查域名的网址
  • 网站做友链有行业要求吗网站被降权会发生什么影响吗
  • 上海浦东新区做网站推荐 南昌网站建设
  • 高端网站优化公司网站标题优化
  • 哪些是 joomla做的网站这几年做网站怎么样
  • 做网站需要买空间么 服务器如何用ps做创意视频网站
  • 做cg的网站肇庆做网站建设
  • 响应式网站的制作有免费搭建app的网站吗
  • 福州开发网站公司徐州英文网站优化
  • 四川省城市建设培训中心 网站有哪些html5制作的网站
  • 做炫舞情侣头像动态图网站网站制作眼
  • 生物技术网站开发wordpress 分类排行榜
  • 网页设计和网站建设是同一回事吗爱奇艺影业公司网站开发意义
  • 湖南专业网站建设网络网站是多少钱
  • 德州住房和城乡建设局网站做家装的有没有网站可以找工作
  • dede 网站名称 空的上海外贸人才网
  • 怎样查网站的注册地点新注册的公司在哪里可以查到
  • 有免费网站推荐吗广州海珠区租房
  • 抢车票网站怎么做free theme wordpress
  • eclipse 制作网站开发营销型网站建设 多少钱
  • 手机4g建立网站做网站需要了解哪些知识
  • 国外网站开发现状做网站怎么申请域名
  • 如何建设个人网站凡科怎么样网页开发岗位
  • 网站 目录访问termux安装wordpress
  • 网站开发与软件开发的异同企业品牌推广方案
  • 专业做轮胎的网站怎么查找关键词排名
  • 定制网站开发食道里感觉有东西堵如何 网站收录
  • 如何建立一个手机网站德州哪里有做网站的
  • 公司网站域名注册费用网站推广常用方法
  • 公司网站的ftp是什么公司手机网站开发招标书