zoukankan      html  css  js  c++  java
  • 多线程如何确定线程数

    最佳线程数

    在使用多线程的时候要注意几个点,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) {
  • 相关阅读:
    zookeeper实现主从选举
    基于Zookeeper+MHA的mysql高可用架构设计
    MHA实现MySQL主从自动在线切换功能
    redis 主从复制
    虚拟iP
    nginx 主从
    代码的快速操作
    网页延时加载
    ajax循环数据
    js实现网页中打印、刷新、关闭、前进、后退、返回等操作
  • 原文地址:https://www.cnblogs.com/jing1617/p/8529097.html
Copyright © 2011-2022 走看看