社区
Java SE
帖子详情
如何将java线程绑定到CPU核上?
youngshaver
2010-03-31 08:26:30
例如: 我的cpu是四核的(A\B\C\D代表每个核),现在创建4个线程(Thread1、Thread2、Thread3、Thread4),如何将Thread1绑定到A核,Thread2绑定到B, .....
谢谢
...全文
783
8
打赏
收藏
如何将java线程绑定到CPU核上?
例如: 我的cpu是四核的(A\B\C\D代表每个核),现在创建4个线程(Thread1、Thread2、Thread3、Thread4),如何将Thread1绑定到A核,Thread2绑定到B, ..... 谢谢
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
8 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
xiesisi3
2010-04-01
打赏
举报
回复
[Quote=引用 6 楼 youngshaver 的回复:]
引用 5 楼 bao110908 的回复:
做不到,线程调度是由操作系统控制的。
PS:这样做有什么意义?
操作系统控制的话,多个线程可能在一个核上运行。如果绑定,可以让线程在多核上运行
[/Quote]
在多核上运行还是在单核上运行不是你说了算的,也不是程序说了算的, 而是操作系统本身的编写人员说了算。
youngshaver
2010-04-01
打赏
举报
回复
[Quote=引用 5 楼 bao110908 的回复:]
做不到,线程调度是由操作系统控制的。
PS:这样做有什么意义?
[/Quote]
操作系统控制的话,多个线程可能在一个核上运行。如果绑定,可以让线程在多核上运行
火龙果被占用了
2010-04-01
打赏
举报
回复
做不到,线程调度是由操作系统控制的。
PS:这样做有什么意义?
和稀泥
2010-04-01
打赏
举报
回复
纯支持
waxberry
2010-04-01
打赏
举报
回复
affinity cpu
youngshaver
2010-04-01
打赏
举报
回复
[Quote=引用 7 楼 xiesisi3 的回复:]
引用 6 楼 youngshaver 的回复:
引用 5 楼 bao110908 的回复:
做不到,线程调度是由操作系统控制的。
PS:这样做有什么意义?
操作系统控制的话,多个线程可能在一个核上运行。如果绑定,可以让线程在多核上运行
在多核上运行还是在单核上运行不是你说了算的,也不是程序说了算的, 而是操作系统本身的编写人员说了算。
[/Quote]
我的程序在多核上运行还是在单核上运行,我说了算!! c C++等已经能将线程绑定到多核,我想知道java怎么绑定!
qqbz
2010-03-31
打赏
举报
回复
好奇,JNI如何做到?
youngshaver
2010-03-31
打赏
举报
回复
是不是一定需要JNI,如果不用JNI能做到吗?
线程
绑定
CPU
核详解
线程
绑定
CPU
核的意义: 在多核
CPU
中合理的调度
线程
在各个
核上
运行可以获得更高的性能。在多
线程
编程中,每个
线程
处理的任务优先级是不一样的,对于要求实时性比较高的
线程
或者是主
线程
,对于这种
线程
我们可以在创建
线程
时指定其
绑定
到某个
CPU
核上
,以后这个核就专门处理该
线程
。这样可以使得该
线程
的任务可以得到较快的处理,特别是和用户直接交互的任务,较短的响应时间可以提升用户的体验感。
绑定
的过程: 几个重要的宏操作: 一个
线程
的
CPU
亲合力掩码用一个
cpu
_set_t结构体来表示一个
CPU
集合,下面的几个宏分别对
Java
如何
绑定
线程
到指定
CPU
上执行?
不知道你是啥感觉,但是我第一次看到这个问题的时候,我是懵逼的。而且它还是一个面试题。我懵逼倒不是因为我不知道答案,而是恰好我之前在非常机缘巧合的情况下知道了答案。我感觉非常的冷门,作为一个考察候选者的知识点出现在面试环节中不太合适,除非是候选者主动提起做过这样的优化。而且怕就怕面试官也是恰巧在某个书上或者博客中知道这个东西,稍微的看了一下,以为自己学到了绝世武功,然后拿出去考别人。这样不合适。说回这个题目。正常来说,其实应该是属于考察操作系统的知识点范畴。...
JAVA
程序
绑定
到指定的
CPU
核上
使用taskset命令将
JAVA
程序
绑定
到指定的
CPU
核上
linux下把进程/
线程
绑定
到特定
cpu
核上
运行
概述 现在大家使用的基本上都是多核
cpu
,一般是4核的。平时应用程序在运行时都是由操作系统管理的。操作系统对应用进程进行调度,使其在不同的
核上
轮番运行。 对于普通的应用,操作系统的默认调度机制是没有问题的。但是,当某个进程需要较高的运行效率时,就有必要考虑将其
绑定
到单独的
核上
运行,以减小由于在不同的
核上
调度造成的开销。 把某个进程/
线程
绑定
到特定的
cpu
核上
后,该进程就会一直在此
核上
运行,不...
java
实现将
线程
绑定
到某个
CPU
核上
(
线程
亲和性)
如果需要开发低延迟的网络应用,那应该对
线程
亲和性(Thread affinity)有所了解。
线程
亲和性能够强制使你的应用
线程
运行在特定的一个或多个
cpu
上。通过这种方式,可以消除操作系统进行调度造成的
线程
的频繁的上下文切换。 实现方式: 1、引入依赖 maven: <!-- https://mvnrepository.com/artifact/net.openhft/affinity --> <dependency> <groupId>net.openhft<
Java SE
62,615
社区成员
307,307
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章