下面的代码说明的是线程池中的方法的实现的方式
| package lt.test01; |
| |
| import java.util.Random; |
| import java.util.concurrent.Callable; |
| import java.util.concurrent.ExecutorService; |
| import java.util.concurrent.Executors; |
| import java.util.concurrent.Future; |
| |
| public class DemoThreadPool { |
| public static void main(String[] args){ |
| |
| ExecutorService es = Executors.newCachedThreadPool(); |
| |
| |
| Future<Integer> result = null; |
| try { |
| for (int i = 1; i <= 20000; i++) { |
| result = es.submit(new Callable<Integer>() { |
| @Override |
| public Integer call() throws Exception { |
| Thread.sleep(20); |
| System.out.print(Thread.currentThread().getName()+"\t\n"); |
| return new Random().nextInt(5); |
| } |
| |
| }); |
| System.out.print("当前的使用次数是:"+i+"\n"); |
| } |
| }catch (Exception e){ |
| e.printStackTrace(); |
| }finally { |
| es.shutdown(); |
| } |
| } |
| } |
下面的代码说名的是实现的是线程的时间化的管理
| package lt.test01; |
| |
| import java.util.Random; |
| import java.util.concurrent.*; |
| |
| public class PoolThreadTest1 { |
| public static void main(String[] args){ |
| ScheduledExecutorService service = Executors.newScheduledThreadPool(5); |
| ScheduledFuture<Integer> result = null; |
| try { |
| for (int i = 1; i <= 20 ; i++) { |
| |
| |
| |
| |
| |
| |
| result = service.schedule(new Callable<Integer>() { |
| @Override |
| public Integer call() throws Exception { |
| System.out.print(Thread.currentThread().getName()+"\t\n"); |
| return new Random().nextInt(5); |
| } |
| },2,TimeUnit.SECONDS); |
| |
| System.out.print("*** \t"+result+"\n"); |
| } |
| }catch (Exception e){ |
| e.printStackTrace(); |
| }finally { |
| service.shutdown(); |
| } |
| |
| } |
| } |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)