使用线程池实现多线程
newFixedThreadPool:线程池中指定固定线程个数来执行任务
package com.roocon.thread.t2; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; public class Demo6 { public static void main(String[] args) { ExecutorService threadPool = Executors.newFixedThreadPool(10); for(int i = 0; i < 10; i++){ threadPool.execute(new Runnable() { @Override public void run() { System.out.println(Thread.currentThread().getName()+" is executing"); } }); } } }
运行结果:
pool-1-thread-1 is executing pool-1-thread-2 is executing pool-1-thread-3 is executing pool-1-thread-7 is executing pool-1-thread-4 is executing pool-1-thread-6 is executing pool-1-thread-5 is executing pool-1-thread-10 is executing pool-1-thread-9 is executing pool-1-thread-8 is executing
newCachedThreadPool():刚开始线程池中先创建几个线程用着,如果线程池中有空闲的线程可以去执行任务,则不会创建新的线程,
如果线程池中无可利用的线程,则会去创建新的线程。可以认为是智能的创建线程。
package com.roocon.thread.t2; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; public class Demo6 { public static void main(String[] args) { ExecutorService threadPool = Executors.newCachedThreadPool(); for(int i = 0; i < 10; i++){ threadPool.execute(new Runnable() { @Override public void run() { System.out.println(Thread.currentThread().getName()+" is executing"); } }); } } }
运行结果:
pool-1-thread-1 is executing pool-1-thread-3 is executing pool-1-thread-2 is executing pool-1-thread-4 is executing pool-1-thread-3 is executing pool-1-thread-1 is executing pool-1-thread-1 is executing pool-1-thread-4 is executing pool-1-thread-2 is executing pool-1-thread-5 is executing
作者:凌晨六点半
出处:http://www.cnblogs.com/sunnyDream/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文链接,否则保留追究法律责任的权利。
如果您认为这篇文章还不错或者有所收获,您可以通过右边的“打赏”功能 打赏我一杯咖啡【物质支持】,也可以点击右下角的【好文要顶】按钮【精神支持】,因为这两种支持都是我继续写作,分享的最大动力!
 
                    
                
 
 
                
            
         浙公网安备 33010602011771号
浙公网安备 33010602011771号