java 程序如何设置线程数

2025-10-08 09:39:46

1、第一步:在java中,线程数设置一般是由线程池来控制的,池的大小决定了线程的数量,线程代码如下:

// corePoolSize:核心池的大小

 

// maximumPoolSize:线程池最大线程数

 

// keepAliveTime:表示线程没有任务执行时最多保持多久时间会终止

 

// TimeUnit: 参数keepAliveTime的时间单位

 

// workQueue:一个阻塞队列

 

ThreadPoolExecutor executor = new ThreadPoolExecutor(5, 10,

 

       200, TimeUnit.MILLISECONDS,

 

       new ArrayBlockingQueue<Runnable>(5));

java 程序如何设置线程数

2、第二步:上面的参数看前面2个,corePoolSize和maximumPoolSize,corePoolSize就用来创建线程,而maximumPoolSize就是用来限制创建线程的最大数量的

java 程序如何设置线程数

3、第三步:线程数量最优的办法就是以cpu的核心数来乘以2,比如是四核cpu就好就是8个线程,比如本电脑四核最好就是8线程

java 程序如何设置线程数

4、第四步:线程数和线程池的使用,在线程池中,线程是先进入到线程池,然后由这个池子来绝定立即执行还是等待执行,代码如下:

//实现自定义接口

 

BlockingQueue<Runnable> workQueue = new ArrayBlockingQueue<>(10);

 

pool = new ThreadPoolExecutor(8, 16, 1000, TimeUnit.MILLISECONDS, workQueue);

 

for(int i=0;i<10;i++) {

 

   pool.execute(new ThreadTask("Task"+i));

 

}

 

pool.shutdown();

java 程序如何设置线程数

5、第五步:new ThreadTask是一个简单线程实现,用了lombok,代码如下:

@Data

 

class ThreadTask implements Runnable {

 

   private String taskName;

 

   public ThreadTask(String name) {

 

       this.setTaskName(name);

 

   }

 

   public void run() {

 

       //输出执行线程的名称

 

       System.out.println("TaskName" + this.getTaskName() + "---ThreadName:" + Thread.currentThread().getName());

 

   }

 

}

java 程序如何设置线程数

6、第六步:运行上面的线程池方法,可以看到线程的数量是由core参数来控制的,最大数是8,如图:

java 程序如何设置线程数

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢