zoukankan      html  css  js  c++  java
  • Java下获取可用CPU数

    1、获取cpu核心数:
    Runtime.getRuntime().availableProcessors();
    创建线程池:
    Executors.newFixedThreadPool(nThreads);//nThreads为线程数
    2、这个只要服务器内存够大,CPU核心数较多,处理数据比较强就好了,注意不要一下分配几千个线程,
    可能会导致堆栈溢出的,这样程序就挂了,因为线程很费内存资源




    用法一:判断所在服务器是否为多核,从而根据情况编写代码逻辑

    /** True if on multiprocessor */
    private static final boolean MP =
    Runtime.getRuntime().availableProcessors() > 1;
    
    /**
    * Returns spin/yield value for a node with given predecessor and
    * data mode. See above for explanation.
    */
    private static int spinsFor(Node pred, boolean haveData) {
    if (MP && pred != null) {
    if (pred.isData != haveData) // phase change
    return FRONT_SPINS + CHAINED_SPINS;
    if (pred.isMatched()) // probably at front
    return FRONT_SPINS;
    if (pred.waiter == null) // pred apparently spinning
    return CHAINED_SPINS;
    }
    return 0;
    }

    代码示例来自于JBoss Netty的LinkedTransferQueue

    有一个叫sigar的工具,不仅可以看cpu的核心数,还可以看当前占用率,还有内存的使用率。功能很强大。我现在的监控系统就是使用这个东东的 

    有一个比sigar更强大的工具,因为他就是依赖sigar做的,奉上:Hyperic HQ 开源版

  • 相关阅读:
    C# 上传辅助方法
    C# 经纬度计算
    C#Excel导出反射数据集
    C# 数据模板导出
    C# 百度经纬度获取地址信息
    【平台开发】— 5.后端:代码分层
    【平台开发】— 4.mysql建库建表
    【平台开发】— 3.前端开发思路
    【平台开发】— 2.前端:vue-element-admin
    【平台开发】— 1.开篇
  • 原文地址:https://www.cnblogs.com/softidea/p/4861232.html
Copyright © 2011-2022 走看看