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(); } } }
完整例子见附件。
相关推荐
今天小编就为大家分享一篇关于在spring boot中使用java线程池ExecutorService的讲解,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
主要介绍了Java 线程池ExecutorService详解及实例代码的相关资料,线程池减少在创建和销毁线程上所花的时间以及系统资源的开销.如果不使用线程池,有可能造成系统创建大量线程而导致消耗系统内存以及”过度切换
运用JAVA的concurrent.ExecutorService线程池实现socket的TCP和UDP连接
目的是是简化并发编程 ExecutorService(执行器)Java两种基础线程池普通:ThreadPoolExecutor定时ScheduledThread
1. 线程池的使用 public static ExecutorService newFixedThreadPool(int nThreads); 得到一个线程对象,初始化参数是要求的当前...import java.util.concurrent.ExecutorService; import java.util.concurrent.Execut
在Java 5.0之前启动一个任务是通过调用Thread类的start()方法来实现的,任务的提于交和执行是同时进行的,如果你想对任务的执行进行调度或是控制 同时执行的线程数量就需要额外编写代码来完成。5.0里提供了一个新的...
本程序实现了ExecutorService线程池,内置说明txt说明,可以参考
运用JAVA的concurrent.ExecutorService线程池实现socket的TCP和UDP连接.doc
Java代码格式 提高 格式化Java文件/目录 List< String> formatSourceFile&#... java -jar /path/to/google-java-format-1.6-all-deps.jar <options> [files...] 格式化程序可以作用于整个文件,有限的行( --lines ),
1. java.util.concurrent - Java 并发工具包 2. 阻塞队列 BlockingQueue 3. 数组阻塞队列 ArrayBlockingQueue 4. 延迟队列 DelayQueue 5. 链阻塞队列 LinkedBlockingQueue 6. 具有优先级的阻塞队列 ...
//Runtime的availableProcessors()方法返回当前系统的CPU的数目 //系统的CPU越多,线程池中工作线程的数目也越多 executorService= Executors.newFixedThreadPool( Runtime.getRuntime()....
主要为大家详细介绍了java ExecutorService使用方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
1. java.util.concurrent - Java 并发工具包 2. 阻塞队列 BlockingQueue 3. 数组阻塞队列 ArrayBlockingQueue 4. 延迟队列 DelayQueue 5. 链阻塞队列 LinkedBlockingQueue 6. 具有优先级的阻塞队列 ...
主要介绍了Java ExecutorService四种线程池使用详解,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
接口 java.util.concurrent.ExecutorService 表述了异步执行的机制,并且可以让任务在后台执行。壹個 ExecutorService 实例...事实上,在 java.util.concurrent 包中的 ExecutorService 的实现就是壹個线程池的实现。
1. java.util.concurrent - Java 并发工具包 2. 阻塞队列 BlockingQueue 3. 数组阻塞队列 ArrayBlockingQueue 4. 延迟队列 DelayQueue 5. 链阻塞队列 LinkedBlockingQueue 6. 具有优先级的阻塞队列 ...
这段代码实现了一个简单的线程池ExecutorService,其中使用了Java的匿名内部类。在类的构造方法中,首先创建了一个固定大小为5的线程池。然后通过循环提交了10个任务到线程池中执行。每个任务都是一个匿名内部类实现...
java.util.concurrent - Java 并发工具包 2. 阻塞队列 BlockingQueue 3. 数组阻塞队列 ArrayBlockingQueue 4. 延迟队列 DelayQueue 5. 链阻塞队列 LinkedBlockingQueue 6. 具有优先级的阻塞队列 ...
ExecutorService基于池化的线程来执行用户提交的任务,通常可以简单的通过Executors提供的工厂方法来创建ThreadPoolExecutor实例。 线程池解决的两个问题:1)线程池通过减少每次做任务的时候产生的性能消耗来...