JAVA多线程
文章平均质量分 94
Evan_su
天道酬勤
展开
-
java线程池ThreadPoolExecutor详解
创建一个新线程时使用的工厂,可以用来设定线程名、是否为daemon线程等等,threadFactory创建的线程也是采用new Thread()方式,threadFactory创建的线程名都具有统一的风格:pool-m-thread-n(m为线程池的编号,n为线程池内的线程编号)当向线程池提交一个任务时,若线程池已创建的线程数小于corePoolSize,即便此时存在空闲线程,也会通过创建一个新线程来执行该任务,直到已创建的线程数大于或等于corePoolSize。线程池所允许的最大线程个数。原创 2024-01-02 21:29:50 · 899 阅读 · 0 评论 -
ThreadPoolExecutor中的keepAliveTime详解
(2)当wc(当前工作者数量)大于 最大线程数 或 空闲线程的空闲时间大于keepAliveTime(timed && timeout),以及wc>1或(workQueue)任务队列为空时,会进入compareAndDecrementWorkerCount方法,对wc的值减1。重新设置线程池的keepAliveTime属性,如果发现将要设置的值比原来的keepAliveTime值要小(即减小keepAliveTime),则触发interruptIdleWorkers(),中断空闲线程。原创 2024-01-05 16:13:10 · 1358 阅读 · 0 评论 -
java多线程详解(二)之创建线程的方式
实现Runnable接口创建的线程,ThreadNameThread-1线程状态stateRUNNABLE线程的上下文类加载器sun.misc.Launcher$AppClassLoader@b4aac2线程Id10线程所属分组java.lang.ThreadGroup[name=main,maxpri=10]线程的优先级5。从结果上可以看到,线程执行的顺序是随机的,只要不改变最终的结果,执行的顺序可以进行调整的。2、getState()获取当前线程的运行状态。......原创 2022-07-22 11:24:39 · 269 阅读 · 0 评论 -
Java之多线程(一)—技术简介
进程(process):是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础。在早期面向进程设计的计算机结构中,进程是程序的基本执行实体;在当代面向线程设计的计算机结构中,进程是线程的容器。程序是指令、数据及其组织形式的描述,进程是程序的实体。 例如上图所示,当通过windows打开任务管理时,你所有正在使用的软件都会对应一个进程。无论是看不到的,还是看的到的程序,都会有一个进程。 现在操纵系统在运行一个程序时,比如:在Wind原创 2022-07-12 17:49:20 · 361 阅读 · 0 评论