博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
多线程如何确定线程数
阅读量:4669 次
发布时间:2019-06-09

本文共 725 字,大约阅读时间需要 2 分钟。

在使用多线程的时候要注意几个点,1.执行这个处理的时间多长,2.执行这类任务的消息有多频繁

我一般的处理,

1.如果执行是时间过长但任务很少,我会只用一个线程(这里是无限循环,直到你的进程退出),而且最好在线程池里面直接开一个出来,不要单独去new一个线程实例,好处的话就去看下线程池跟单个线程的知识;

2.如果是执行时间短,这里就忽略掉任务的多与少,直接每次都从线程池里取一个线程来执行,因为执行时间段很快就会释放资源,这样效率很高;

3.如果执行时间长而且任务量大,那就创建线程数组,个数上我一般使用当前服务器cpu的核数的2倍,这样不会太占用资源,这种单独new出来的线程,再不使用或者关闭的时候要特别注意回收

 

try {            threadPool = Executors.newFixedThreadPool(Constants.THREAD_SIZE);            CountDownLatch countDownLatch = new CountDownLatch(Constants.SIZE);            for (int i = 0; i < Constants.THREAD_SIZE; i++) {                threadPool.execute(new Worker(countDownLatch));            }            countDownLatch.await();        } catch (Exception e) {

 

转载于:https://www.cnblogs.com/jing1617/p/8529097.html

你可能感兴趣的文章
第四周作业&&结对编程
查看>>
12. 构造代码块
查看>>
指针函数与函数指针的区别
查看>>
HDOJ 4734 数位DP
查看>>
我的第一个python web开发框架(15)——公司介绍编辑功能
查看>>
win10
查看>>
JS DOM操作基础
查看>>
DataSet.GetBookMark内存泄漏
查看>>
get请求中params参数的使用
查看>>
[LeetCode] 617. Merge Two Binary Trees
查看>>
[LeetCode] 538. Convert BST to Greater Tree
查看>>
Django中的form模块的高级处理
查看>>
[js]DOM 篇
查看>>
C# 观察者模式
查看>>
SQLite(二)高级操作
查看>>
iOS开发之oc(二十)--Foundation(5)NSDictionary
查看>>
初入RFID技术
查看>>
电暖器选购指南(包括暖风机)
查看>>
各类常犯的错误总结
查看>>
mac打包python3程序
查看>>