`

java线程池工具--ExecutorService,简单例子

阅读更多

     java多线程在java编程过程中有很多的用处,面试的时候也经常被问到,这里就线程池做一个简单的例子:通过线程池操作User,代码如下

    

    1、实体类:User

package com.entity;

//实体类
public class User {
	private int id ;
	private String name;
	private String age;
	private String address;
	
	public User(){
		
	}
	
	public User(String name,String age,String address){
		this.name = name;
		this.age = age;
		this.address = address;
	}
	
	public int getId() {
		return id;
	}
	
	public void setId(int id) {
		this.id = id;
	}
	
	public String getName() {
		return name;
	}
	
	public void setName(String name) {
		this.name = name;
	}
	
	public String getAge() {
		return age;
	}
	
	public void setAge(String age) {
		this.age = age;
	}
	
	public String getAddress() {
		return address;
	}
	
	public void setAddress(String address) {
		this.address = address;
	}
}

 

 2、数据库操类:UserDao

package com.dao;

import com.entity.User;

public class UserDao {
	//添加用户
	public void addUser(User user){
		//这个方法用来操作数据,代码省,做简单的输出
		System.out.println(user.getName());
		System.out.println(user.getAge());
	}
}

 

   3、测试调用类:UserServer

package com.serverlet;

import com.entity.User;
import com.thread.ThreadPool;
import com.thread.UserAddThread;

/**
 * 用户操作类,线程池测试
 */
public class UserServer {
	 //添加用户
	 public void addUser() throws Exception{
		 User entity = new User("熊敏","28","深圳");
		 
		 //将用户信息塞到线程池
		 ThreadPool.getInstance().execute(new UserAddThread(entity));
	 }
	 
	 
	 //测试
	 public static void main(String[] args) throws Exception {
		UserServer userServer = new UserServer();
		 
		for (int i = 0; i < 10; i++) {
			userServer.addUser();
		}
	 }
}

 

   4、线程池类:ThreadPool

package com.thread;

import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;

/**
 * 实现线程池,的方法
 */
public class ThreadPool {
	//JDK工具类,创建一个线程池,这个线程池最大的链接数为10
	final ExecutorService exec = Executors.newFixedThreadPool(10);
	
	private static ThreadPool pool = new ThreadPool();
	
	private ThreadPool(){
	}

	public static ThreadPool getInstance(){
		if(pool == null){
			return pool = new ThreadPool();
		}
		return pool;
	}
	
	
	/**
	 * 执行线程任务
	 * @param command  一个需要执行的线程任务
	 */
	public void execute(Runnable command) throws Exception{
		exec.submit(command);
	}
}

   

   5、线程类(线程任务类):UserAddThread

package com.thread;

import com.dao.UserDao;
import com.entity.User;

//线程类
public class UserAddThread implements Runnable{
	UserDao userDao = new UserDao();
	
	private User user;
	
	//初始化时,需要将user也实例化
	public UserAddThread(User user){
		this.user = user;
	}  
	
	
	//执行任务
	@Override
	public void run() {
		try{
			userDao.addUser(user);
		}catch(Exception e){
			e.printStackTrace();
		}
	}
}

 

   完整例子见附件。

 

分享到:
评论

相关推荐

    JAVA线程池例子

    Java线程池是一种高效管理线程资源的技术,它允许开发者创建一组可重用的工作线程,从而避免频繁地创建和销毁线程带来的性能开销。线程池在Java中主要通过`java.util.concurrent`包中的`ExecutorService`接口及其...

    java 四种线程池实例

    总之,Java线程池提供了一种强大的工具来管理和优化并发任务的执行,理解并熟练使用各种线程池实例能够显著提升程序的效率和可维护性。在设计系统时,应该充分考虑线程池的选择和配置,以适应不同类型的异步任务需求...

    Java-Thread-Pool-example:一个简单的 Java 线程池示例

    Java线程池是一种高效管理并发任务的机制,它在多线程编程中扮演着至关重要的角色。线程池通过预先创建并维护一组可重用线程来提高性能和响应速度,避免频繁创建和销毁线程所带来的开销。在这个"Java-Thread-Pool-...

    java线程池和反射机制例子

    Java线程池与反射机制是Java编程中两个重要的概念,它们在实际开发中扮演着至关重要的角色。线程池能够有效地管理和控制并发执行的任务,而反射机制则允许我们在运行时动态地访问和修改类的信息。 首先,让我们深入...

    Java线程池.pdf

    Java线程池是处理高并发、高负载场景下任务调度和执行的有效工具,通过预创建线程并复用,极大提高了系统的响应能力和资源利用效率。理解和掌握Java线程池的原理和使用方法,对于开发高性能、高可靠的Java应用至关...

    Java 线程池ExecutorService详解及实例代码

    Java线程池ExecutorService是Java并发编程中非常重要的一个组件,它通过管理和复用线程资源,有效地控制并发任务的执行,从而提高系统的性能和稳定性。本文将详细讲解ExecutorService的原理、使用场景以及如何通过...

    Java 线程池_动力节点Java学院整理

    Java线程池是一种高效管理线程资源的工具,它的出现是为了优化系统性能,尤其是在需要频繁创建和销毁线程的情况下。由于操作系统创建新线程需要进行内存分配、上下文切换等操作,这涉及到一定的开销。因此,使用...

    Java线程池编程

    Java线程池编程是Java多线程编程中的一个重要概念,主要涉及Java的`java.util.concurrent`包,这个包提供了一套高效、灵活的并发工具,包括线程池在内的多线程框架。线程池允许开发者预先创建一组线程,然后在需要时...

    java线程池使用说明[借鉴].pdf

    总的来说,Java线程池是实现并发和多线程编程的有效工具,它通过统一的线程管理策略和任务调度机制,提高了系统的并发性能和资源利用效率。开发者可以根据应用需求选择合适的线程池类型,或自定义线程池配置,以实现...

    线程池的实现(JAVA)

    在Java中,`java.util.concurrent` 包提供了对线程池的支持,主要由`ExecutorService`、`ThreadPoolExecutor` 和 `Executors` 类来实现。 1. **ExecutorService**: 这是线程池的核心接口,定义了线程池的主要操作,...

    JAVA-multithreaded-programming.rar_Java @multithreaded_java prog

    - **ExecutorService**:Java提供的线程池接口,可以通过ThreadPoolExecutor创建线程池,有效管理线程生命周期,提高系统效率。 - **Executors**:提供静态工厂方法,简化线程池的创建。 7. **死锁** - 当两个或...

    Java 线程池详解及创建简单实例

    本文将深入解析Java线程池的工作原理,并给出创建简单实例的步骤。 线程池的核心在于`java.util.concurrent`包中的`ExecutorService`接口,它是执行任务的中心接口。`ExecutorService`扩展了`Executor`,提供了更...

    Android java 线程池

    总结,Java线程池是Android应用优化并发处理的重要工具。正确地配置和使用线程池,能够提高应用性能,降低内存占用,并使任务调度更加灵活高效。在实践中,开发者需要根据应用特性来调整线程池参数,确保其适应各种...

    火山安卓编程线程池例子

    在Android中,可以使用`java.util.concurrent`包下的`ExecutorService`、`ThreadPoolExecutor`等类来创建线程池。线程池的主要优点包括: 1. **资源管理**:线程池可以有效地管理线程,避免过多线程消耗系统资源。 ...

    Java基础知识-day07【线程池、Lambda表达式】.pdf

    Java线程池与Lambda表达式是Java开发中的重要概念,特别是在多线程编程和函数式编程领域。线程池是一种管理线程的技术,它能够有效地复用线程,避免频繁创建和销毁线程带来的开销,提高系统性能。在Java中,我们可以...

    java ExecutorService使用方法详解

    Java中的`ExecutorService`是Java并发编程的重要组成部分,它提供了线程池的管理,使得开发者可以更有效地控制并发任务的执行。在Java的`java.util.concurrent`包中,`ExecutorService`接口作为线程池的核心接口,...

    java_lab-master.zip

    - **线程池**:ExecutorService和ThreadPoolExecutor的使用。 - **并发工具类**:Semaphore、CyclicBarrier、CountDownLatch等。 5. **I/O流** - **文件操作**:File类,读写文件,文件复制。 - **字节流与字符...

    常用多线程模板与鱼刺类多线程线程池应用小例子

    Java的`java.util.concurrent`包提供了`ExecutorService`接口和相关的实现类,如`ThreadPoolExecutor`,用于构建和管理线程池。通过设置核心线程数、最大线程数、线程存活时间等参数,可以定制适合不同场景的线程池...

Global site tag (gtag.js) - Google Analytics