IDEA中怎么设置项目更改后的分析延迟时间,IDEA是java编程语言的集成开发环境,使用该软件编写代码时,可以设置项目更改后的分析延迟时间,这样就可确保项目范围分析的正确性,具体的操作步骤如下。......
2023-07-04 628 JAVA
多线程程序是一个后端程序员必须需要学会的一个技能,也是程序写作中的一大难点,本篇文章适合已经了解基本的多线程程序规则,想要更快更好地写出高效率的多线程程序的读者。尚未了解多线程的,可以先去看看多线程的基础原理。
首先,先让我们来了解一下Exexctor多线程框架的常用接口和子类:
Executor:是用来接收多线程中的runnable方法的;
ExecutorService:是前者(Executor)的子类接口,但是适用面更广;
AbstractExecutorService:是前者(ExecutorService)执行方法的默认实现;
ScheduledExecutorService:Scheduled,顾名思义,这个接口是做定时调度用的;
ScheduledThreadPoolExecutor:前者(ScheduledExecutorService)的实现,没什么好说的;
ThreadPoolExecutor:线程池,保存线程的地方。
ps:ThreadPoolExecutor这个是调用Executors方法,而返回值是ExecutorService对象!!!切记是ExecutorService对象而不是Executor对象,本人被坑过很多次!!!
下面将对各个方法进行简单介绍以及小例子的使用。
下面这个就是ThreadPoolExecutor方法的具体调用方式了,需要注意的有:
1.后两个参数是可选的,也就是不填也是ok的。
2.corePoolSize这个参数是核心线程数,也就是这个系统的最少线程数,及时用不到这么多线程,他也会创建这么多。
3.maximumPoolSize是最大线程数,也就是这个系统允许的最多线程数,和上面的最小线程数一起规定了总线程的多少。即以下这个公式:
***corePoolSize运行的线程数maximumPoolSize
4.keepAliveTime,线程的存活时间。当现在运行的线程数大于最小线程数的时候,当一个线程存活时间到这个keepAliveTime的时候,这个线程就会被关闭。
5.unit,是keepAliveTime的单位,就是是按纳秒,微秒,毫秒,秒这类的计量单位。
6.workQueue,这个是阻塞队列,这个是操作系统的相关知识,不多做解释。如果读者现在不太了解操作系统的就绪、阻塞、运行的状态,我的建议还是先去学习操作系统的相关知识再来做多线程,这样会容易理解很多。
7.threadFactory,线程工厂,顾名思义,创建新线程的地方。
8.handle,处理,就是处理线程的地方啦。
ok,ThreadPoolExecutor讲过了,下面大家再来了解一下重要的Executors方法,这个方法提供了大量的静态工厂,来创建各种各样不同功能的线程。由于这是初学教程,我就只简单的介绍两种最常用的方法。
1.newFixedThreadPool方法,这个方法是创建固定数目,且可以重复使用的线程,也就是一开始说要创建比如5个,那么无论何时,无论发生什么样的情况,都有且只有5个线程,任务比5个多,那就堆在那,任务比5个少,那线程即使是闲着也不会取消。反正就这5个工人,活多多少,都是5个,不会变的。
2.newSingleThreadExecutor方法,这个方法比较有趣,在这个方法下,如果一个线程执行一个任务到一半,然后这个线程异常关闭了,那么就会自动生成一个新的线程,继续执行这个任务。
我比较喜欢把这个线程成为:愚公移山线程,毕竟线程的关闭大多数都是因为线程寿命到了,而后被系统关闭的。
说了这么多理论,想必大家会有些枯燥,我这里来举一个计时器的小例子,来和大家更为深刻的理解下Exexctor框架的基本知识。
这里我们采用了上述的“愚公移山”进程,还有我们的定时调度功能,也就是5秒后我们的计时器开始“滴答”,之后每三秒执行一次“滴答”,保证这个一直能执行下去的,使我们的newSingleThreadExecutor方法,而能保证这个每三秒执行一次的,则是我们的ScheduledExecutorService定时调度功能。
这短短的十行代码,包含了上面和大家讲的很多知识,而且这个框架是不是也觉得用起来很简单呢?
读者如果对这个框架感兴趣的话可以留言,或者是深入去研究,必能有所收获。
以上方法由办公区教程网编辑摘抄自百度经验可供大家参考!
标签: JAVA
相关文章
IDEA中怎么设置项目更改后的分析延迟时间,IDEA是java编程语言的集成开发环境,使用该软件编写代码时,可以设置项目更改后的分析延迟时间,这样就可确保项目范围分析的正确性,具体的操作步骤如下。......
2023-07-04 628 JAVA
IDEA中怎么设置调试器最近表达式的最大数量,IDEA是java编程语言的集成开发环境,使用该软件编写代码时,可以设置调试器最近表达式的最大数量,从而有效避免调试器中表达式存储过多。......
2023-07-04 448 JAVA