首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Hazelcast:具有多CPU计算机的集群上的线程数

Hazelcast:具有多CPU计算机的集群上的线程数
EN

Stack Overflow用户
提问于 2016-01-26 16:33:24
回答 2查看 685关注 0票数 0

我使用Hazelcast创建了一个集群:它有一个主节点,它在其他5个节点之间传播Runnable。我的问题是: Hazelcast ExecuterService是否也并行地在每个计算节点内执行计算?

我的意思是,如果我的每个计算节点都有4个CPU(或单个CPU上的4个核心),那么参与计算的线程总数是多少?5(每个节点的线程)或5*4=20 (每个CPU/核心线程)?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-01-31 18:16:44

好吧,我们可以手工计算出来:

代码语言:javascript
复制
public class HazelcastTest {

    @Test
    public void test() {
        HazelcastInstance instance = Hazelcast.newHazelcastInstance();

        IExecutorService exec = instance.getExecutorService("exec");
        for (int i = 0; i < 100; i++) {
            exec.submit(new MyRunnable());
        }
    }

}

public class MyRunnable implements Runnable, Serializable {

    @Override
    public void run() {
        long threadId = Thread.currentThread().getId();
        System.err.println("threadId: " + threadId);
    }

}

结果是:

代码语言:javascript
复制
threadId: 48
threadId: 48
threadId: 46
threadId: 48
threadId: 46
threadId: 48
threadId: 46
threadId: 46
threadId: 54
threadId: 48
...etc...

另一个证据是CPU监视器显示所有可用内核的100%负载。

票数 0
EN

Stack Overflow用户

发布于 2016-01-28 07:08:22

发送给成员的runnable将在每个成员中运行一次,这意味着它将只使用单个线程。SO5

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35018905

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档