社区
C++ 语言
帖子详情
怎么让程序只能使用CPU的一个核心
policelorl
2012-01-23 10:57:00
我想看程序在单核单线程的CPU下运行的结果,但是我并不想专门去买个单核CPU,有什么办法可以让程序只使用一核一线程?
...全文
1215
9
打赏
收藏
怎么让程序只能使用CPU的一个核心
我想看程序在单核单线程的CPU下运行的结果,但是我并不想专门去买个单核CPU,有什么办法可以让程序只使用一核一线程?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
9 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
MagiSu
2012-01-24
打赏
举报
回复
你就设置一个线程试试。
ghost5216
2012-01-24
打赏
举报
回复
4楼正解
yiyefangzhou24
2012-01-24
打赏
举报
回复
这个不是你用户态程序可以决定的事情,一般理论上一个核只能处理一个线程,但是是系统内部使用一定的调度算法进行CPU调度的,用户态的程序只负责实行相应的功能。
mLee79
2012-01-24
打赏
举报
回复
对了,我们拨号上网也不容易,到时候多给点分。
mLee79
2012-01-24
打赏
举报
回复
设置线程亲和性就可以了, 不同的系统有不同的API, M$Win下你就 SetThreadAffinityMask , *nix 下你就pthread_setaffinity_np 。
Lactoferrin
2012-01-24
打赏
举报
回复
超线程技术也会显示成两个cpu
policelorl
2012-01-24
打赏
举报
回复
其实我也想到SetThreadAffinityMask
但是Intel的处理器带有超线程技术,没法在单线程下运行
s_hhm
2012-01-23
打赏
举报
回复
这个想在程序中控制有难度吧。个人认为程序执行后,它有那个CPU内核去执行是有系统管理的。也许可以,但我还没发现这样的。等答案!
mymtom
2012-01-23
打赏
举报
回复
打开任务管理器->选择进程标签->右键单击进程->选择关系设置->在处理器关系里选择允许执行该进程的CPU
windows系统启动java
程序
限制
cpu
核心
数
windows上限制java
程序
限制
cpu
核心
数的方式: 1、任务管理操作 任务管理器-->详细信息-->找到进程,鼠标右键-->设置相关性-->选择
使用
cpu
核心
。 这种方式是临时方案,因为在
程序
重启后,这里的设置会被还原,即默认还是充分
使用
全部
cpu
核心
。 2、利用bitsum 通常我们启动
一个
java进程为:java -jar xxx.jar。 这里添加命令 start /affinity 0x0000000000000003 java -ajr xxx.j
多线程与
CPU
核心
的关系
前言 做为
程序
员多线程大家应该不陌生,但是业务如果不能指定线程数,而且需要处理流数据时,如何才能最大程度的发挥服务器的性能呢(暂不考虑
cpu
以外的性能瓶颈)。 线程与
CPU
的关系 众所周知,
程序
的运算,是交由
cpu
来执行的,具体来讲,是由
cpu
的
核心
来完成的,
一个
核心
同时
只能
运行
一个
线程。那么问题来了,既然
一个
核心
只能
同时运行
一个
线程,是否线程数最大设置为
cpu
核心
数就可以了呢?并不是,虽然
一个
cpu
核心
同时
只能
运行
一个
线程,但是线程并不是时时刻刻占用着
cpu
核心
(除非是计算密集型),当你的线程执行IO操作
在多核计算机上执行多线程的
程序
,为什么只有
一个
cpu
在运行,计算机只有
一个
CPU
为什么能同时运行多个软件...
中央处理器(
CPU
),是电子计算机中的
核心
配件,相当于人的大脑,人的大脑可以控制人的身体,而计算机的大脑
CPU
可以控制计算机。
CPU
的功能主要是解释计算机指令以及处理计算机软件中的数据。我们打开任务管理器,就会发现其实
一个
系统中运行了多个
程序
,这就给我们造成了
一个
假象,就是我们电脑可以同时运行很多很多
程序
,其实不是的。在某一时刻,只有
一个
程序
在运行!我们的电脑运行多个
程序
,但是他们并不是并行的,而...
linux 进程 锁定
cpu
,如何在Linux中将进程限制为
一个
CPU
核心
?
类似于ulimit或
cpu
limit的东西会很好. (只是为了确保:我不想限制百分比
使用
或执行时间.我想强制app(包括所有孩子,进程(线程))
使用
一个
cpu
核心
(或’n’
cpu
核心
)).解决方法:在Linux下,执行sched_setaffinity系统调用.进程的亲和性是它可以运行的一组处理器.有
一个
标准的shell包装器:taskset.例如,要将进程固定到
CPU
#0(您需要选择
一个
特定的C...
为什么
一个
python进程
只能
占用
一个
CPU
?
在看《现代操作系统》时,疑惑得到了解答。这本书的2.2.4节中,提到了,如果将线程包(进程中的所有线程组成线程包)放在用户空间中,则操作系统内核在线程调度的时候,认为该进程是
一个
拥有单线程的进程,所以
只能
占用
一个
CPU
。在网上查找了大量的资料,说的是因为GIL锁的存在,所以
只能
占用
一个
CPU
,但是感觉有点迷迷糊糊的,没有说得很清楚。而python正是将线程包放在用户空间中的,所以
一个
进程
只能
占用
一个
CPU
。Java是内核级线程,所以
一个
进程可以占用多个
CPU
。《现代操作系统》第四版。
C++ 语言
64,654
社区成员
250,484
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章