Java线程池如何体现自己的用途

开发 后端
Java线程池如何才能更好的进行顺畅的使用。这个问题在解决的过程中就涉及到相关的技术学校。下面我们就详细的看看如何才能解决。

Java线程池就像数据库连接池一样,是一个对象池。我们在使用的时候需要不断的学习,这样才能不断的适应相关语言技术的变化。所有的对象池都有一个共同的目的,那就是为了提高对象的使用率,从而达到提高程序效率的目的。#t#

比如对于Servlet,它被设计为多线程的(如果它是单线程的,你就可以想象,当1000个人同时请求一个网页时,在第一个人获得请求结果之前,其它999个人都在郁闷地等待),如果为每个用户的每一次请求都创建一个新的线程对象来运行的话,系统就会在创建线程和销毁线程上耗费很大的开销,大大降低系统的效率。因此,Servlet多线程机制背后有一个Java线程池在支持,线程池在初始化初期就创建了一定数量的线程对象,通过提高对这些对象的利用率,避免高频率地创建对象,从而达到提高程序的效率的目的。

下面实现一个最简单的Java线程池,从中理解它的实现原理。为此我们定义了四个类,它们的用途及具体实现如下:

Task(任务):这是个代表任务的抽象类,其中定义了一个deal()方法,继承Task抽象类的子类需要实现这个方法,并把这个任务需要完成的具体工作在deal()方法编码实现。Java线程池中的线程之所以被创建,就是为了执行各种各样数量繁多的任务的,为了方便线程对任务的处理,我们需要用Task抽象类来保证任务的具体工作统一放在deal()方法里来完成,这样也使代码更加规范。
Task的定义如下:

Java代码

  1. public abstract class Task {   
  2. public enum State {   
  3. /* 新建 */NEW, /* 执行中 */RUNNING, /* 已完成 */FINISHED   
  4. }   
  5. // 任务状态   
  6. private State state = State.NEW;   
  7. public void setState(State state) {   
  8. this.state = state;   
  9. }   
  10. public State getState() {   
  11. return state;   
  12. }   
  13. public abstract void deal();   
  14. }   
  15. public abstract class Task {  
  16. public enum State {  
  17. /* 新建 */NEW, /* 执行中 */RUNNING, /* 已完成 */FINISHED  
  18. }  
  19. // 任务状态  
  20. private State state = State.NEW;  
  21. public void setState(State state) {  
  22. this.state = state;  
  23. }  
  24. public State getState() {  
  25. return state;  
  26. }  
  27. public abstract void deal();  

以上就是对Java线程池的相关代码介绍。

责任编辑:张浩 来源: 互联网
相关推荐

2019-09-09 09:50:27

设置Java线程池

2010-03-18 15:15:08

Java线程池

2024-10-21 18:12:14

2012-05-15 02:18:31

Java线程池

2022-09-26 00:48:14

线程池阻塞数据

2010-03-15 19:56:46

Java线程

2015-08-20 09:17:36

Java线程池

2021-09-11 15:26:23

Java多线程线程池

2023-06-08 07:48:03

Java线程池

2023-11-22 08:37:40

Java线程池

2021-06-24 08:02:35

线程池Java代码

2024-11-13 16:37:00

Java线程池

2021-11-15 10:50:52

Java线程池代码

2012-02-29 13:26:20

Java

2017-05-04 16:33:58

Java线程池实践

2010-03-17 17:37:17

Java线程返回值

2020-09-04 10:29:47

Java线程池并发

2020-03-05 15:34:16

线程池C语言局域网

2022-03-09 09:43:01

工具类线程项目

2021-02-06 14:02:55

线程池Builder模式
点赞
收藏

51CTO技术栈公众号