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

网站建设合同 简单学新媒体运营最好的培训学校

网站建设合同 简单,学新媒体运营最好的培训学校,上饶网站网站建设,做网站电信运营许可证ThreadFactory 是 Java 中一个用于创建线程的接口,它可以自定义线程的创建过程,例如线程的名称、优先级、是否为守护线程等。它是 java.util.concurrent 包的一部分,通常与线程池(ThreadPoolExecutor)一起使用。 线程…

ThreadFactory 是 Java 中一个用于创建线程的接口,它可以自定义线程的创建过程,例如线程的名称、优先级、是否为守护线程等。它是 java.util.concurrent 包的一部分,通常与线程池(ThreadPoolExecutor)一起使用。

线程池默认使用一个简单的 ThreadFactory 来创建线程,但开发者可以实现自己的 ThreadFactory 来满足特定需求,例如为线程设置统一的名称前缀,方便调试和监控。

ThreadFactory 接口定义

@FunctionalInterface
public interface ThreadFactory {Thread newThread(Runnable r);
}

newThread(Runnable r) 方法:
创建并返回一个新的线程,任务由参数 Runnable r 执行。

默认 ThreadFactory 实现

线程池默认使用的 ThreadFactoryExecutors.defaultThreadFactory(),它的实现如下:

public static ThreadFactory defaultThreadFactory() {return new DefaultThreadFactory();
}private static class DefaultThreadFactory implements ThreadFactory {// 静态变量,用于记录线程池的全局编号。AtomicInteger是线程安全的递增计数器。private static final AtomicInteger poolNumber = new AtomicInteger(1);// 当前线程组,用于管理线程的分组关系。private final ThreadGroup group;// 记录当前线程池中线程的编号。每个线程池独立编号,线程编号从1开始。private final AtomicInteger threadNumber = new AtomicInteger(1);// 每个线程池的线程名称前缀,便于调试和区分线程池。private final String namePrefix;// 构造函数:初始化线程组和线程名称前缀。DefaultThreadFactory() {// 获取当前的安全管理器。如果安全管理器存在,则获取线程组,否则获取当前线程的线程组。SecurityManager s = System.getSecurityManager();group = (s != null) ? s.getThreadGroup() : Thread.currentThread().getThreadGroup();// 设置线程名称的前缀,格式为 "pool-N-thread-",其中 N 是线程池编号。namePrefix = "pool-" + poolNumber.getAndIncrement() + "-thread-";}// 重写 ThreadFactory 接口的 newThread 方法,创建一个新线程。@Overridepublic Thread newThread(Runnable r) {// 创建一个新线程,将任务 r 绑定到线程中,并设置线程名称和所属线程组。Thread t = new Thread(group, r, namePrefix + threadNumber.getAndIncrement(), 0);// 如果新线程是守护线程,将其设置为非守护线程。// 守护线程会在 JVM 中所有非守护线程终止后自动退出,因此这里确保线程池的线程不会被意外回收。if (t.isDaemon())t.setDaemon(false);// 如果线程的优先级不是正常优先级(Thread.NORM_PRIORITY),将其设置为正常优先级。// 这确保线程池中的所有线程具有一致的优先级。if (t.getPriority() != Thread.NORM_PRIORITY)t.setPriority(Thread.NORM_PRIORITY);// 返回新创建的线程。return t;}
}

默认实现的特点
  1. 线程命名规则:
    线程名称格式为:pool-N-thread-M,其中 N 是线程池编号,M 是线程编号。
    例如:pool-1-thread-1pool-1-thread-2

  2. 非守护线程:
    创建的线程默认是非守护线程,这样线程池中的线程不会因为 JVM 退出而被销毁。

  3. 线程优先级:
    默认设置为 Thread.NORM_PRIORITY,即标准优先级。

  4. 线程组:
    线程被分配到当前线程的线程组中。

http://www.yidumall.com/news/72962.html

相关文章:

  • 乐清市网站建设太原网站关键词排名
  • 苏州做网站建设淘宝数据分析
  • 连云港网站建设百度谷歌seo优化
  • wordpress如何在文章底部添加目录遵义网站seo
  • 网站建设手机站俄罗斯搜索引擎推广
  • 做网站 广告收入seo三人行论坛
  • wordpress调用文章阅读量百度快照如何优化
  • 朋友找做网站都要收定金购物网站大全
  • 哈尔滨网站建设一薇ls15227营销策略案例
  • 做不锈钢的网站有哪些凡科建站官网登录
  • 跨境电商平台数据成都专业的整站优化
  • 有什么可以做任务赚钱的网站seo快速软件
  • phpcms做的网站有哪些如何利用互联网进行宣传推广
  • 网站域名必须备案吗免费收录网站
  • 外链网盘网站注册网站
  • 导航网站怎么做seo公司网站注册流程和费用
  • 重庆招聘网站建设线上销售怎么做
  • 简单的旅游网站怎么做最好的免费推广平台
  • 福州建设工程质量监督网站环球军事网
  • 医院网站怎么建设西安百度推广竞价托管
  • 佛山网页制作设计dz论坛seo
  • p2p种子网站建设seo排名影响因素主要有
  • 低价网站设计多少钱如何自己建一个网站
  • 软文推广收费seo1现在怎么看不了
  • wordpress 显示当前分类深圳优化公司高粱seo较
  • 做电影下载网站需要什么软件重庆网络推广
  • 网站添加qq在线客服专业排名优化工具
  • 网站页面相似度检测智能建站平台
  • 做网站的服务商怎么样推广自己的产品
  • 做网站的联系方式看到招聘游戏推广员千万别去