VC的线程可不可以java 获取指定线程CPU运行

vc++ 如何限制线程运行的时间和内存大小,好的加分!!!!谢谢!_百度知道
vc++ 如何限制线程运行的时间和内存大小,好的加分!!!!谢谢!
就是如果一个线程运行超过某个时间,或者运行时分配的内存超过一个值,就把它结束。如何做到? 非常感谢 !!!
我有更好的答案
送你几个字:创建一个沙箱
就是创建一个工作,然后把相关线程放到这个工作里,接着施加限制。具体作法一两句也说不清楚,建议百度相关资料。
送你几句话:创建一个沙箱
为您推荐:
其他类似问题
内存大小的相关知识
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。任意时候是不是只有一个线程可以运行?_百度知道
任意时候是不是只有一个线程可以运行?
任意时候是不是只有一个线程可以运行? 直到该线程调用sleep() 才切换到其他线程?
我有更好的答案
不是,操作系统自己有一个线程调度机制,各线程是并行运行的
是不是N核的CPU就可以同时运行N个线程?
一核CPU也可以运行N个线程,这个跟CPU数量无关,跟CPU处理能力有关
采纳率:38%
来自团队:
不错,CPU在同一时间点是只能执行某个进程中的一条线程的,不过CPU转换各个线程的时间快到难以察觉,所以给人一种能同时执行多个任务的错觉.但不是一个线程调用sleep()才切换到其它线程的,而是CPU自己调度的,而自己线程中的sleep()只是表示自己要sleep().假设:cpu 里有100个线程,cpu以0.00001s在切换着执行每个线程,当运行到你的线程时,并且运行到sleep()这里时,你显示的告诉cpu你要sleep1分钟,那么在1分钟内,你的线程不会被cpu调度,其余的99个线程依然在由cpu循环执行,直到你的sleep时间到了。
不是,可以自己安排
不是 线程调用也是存在线程调度的
其他1条回答
为您推荐:
其他类似问题
您可能关注的内容
线程的相关知识
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。没有更多推荐了,
不良信息举报
举报内容:
JAVA的线程可以在多个CPU上运行么?
举报原因:
原文地址:
原因补充:
最多只允许输入30个字
加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!下次自动登录
现在的位置:
& 综合 & 正文
如何设置进程(线程)在指定的CPU上运行
进程与指定cpu绑定:SetProcessAffinityMask(GetCurrentProcess(), dwMask);
线程与指定cpu绑定:SetThreadAffinityMask(GetCurrentThread(),dwMask);
dwMask为CPU序号的或运算值:1(0001)代表只运行在CPU1,<span style="font-size:13 color:#(0010)代表只运行在CPU2,3(0011)代表可以运行在CPU1和CPU2,以此类推。
设置之前最好判断一下系统有几个CPU:
SYSTEM_INFO SystemI
GetSystemInfo(&SystemInfo);
CPU个数:SystemInfo.dwNumberOfProcessors
当前启用的CPU序号:SystemInfo.dwActiveProcessorMask,Mask representing the set of processors configured into the system. Bit 0 is processor 0;
bit 31 is processor 31.
CPU亲缘性介绍
按照默认设置,当系统将线程分配给处理器时,Windows使用软亲缘性来进行操作。这意味着如果所有其他因素相同的话,它将设法在它上次运行的那个处理器上运行线程。让线程留在单个处理器上,有助于重复使用仍然在处理器的内存高速缓存中的数据。
有一种新的计算机结构,称为NUMA(非统一内存访问),在该结构中,计算机包含若干块插件板,每个插 件板上有4个CPU和它自己的内存区。
当CPU访问的内存是它自己的插件板上的内存时,NUMA系统运行的性能最好。如果CPU需要访问位于另一个插件板上的内 存时,就会产生巨大的性能降低。在这样的环境中,就需要限制来自一个进程中的线程在共享同一个插件版的CPU上运行。为了适应这种计算机结构的需要,Windows允许你设置进程和线程的亲缘性。换句话说,你可以控制哪个CPU能够运行某些线程。这称为硬亲缘性。请注意,子进程可以继承进程的亲缘性。
(1)无论计算机中实际拥有多少个CPU,Windows98及以前系统只使用一个CPU,上述API不被支持。
(2)在大多数环境中,改变线程的亲缘性就会影响调度程序有效地在 各个CPU之间移植线程的能力,而这种能力可以最有效地使用CPU时间。
应用场景举例:
将UI线程限制在一个CPU,将其他实时性要求较高的线程限制在另一个CPU。这样,当UI需要占用大量CPU时间时,就不会拖累其他实时性要求较高的线程的执行。同样可以将UI线程与一些优先级不高但耗时的异步运算线程设置在不同CPU上,避免UI给人卡顿的感觉。
【上篇】【下篇】为什么几个线程(2个CPU)只在一个CPU上运行?????
[问题点数:40分,结帖人yilanzhongshanxiao]
为什么几个线程(2个CPU)只在一个CPU上运行?????
[问题点数:40分,结帖人yilanzhongshanxiao]
不显示删除回复
显示所有回复
显示星级回复
显示得分回复
只显示楼主
2011年 总版技术专家分年内排行榜第三2010年 总版技术专家分年内排行榜第三
2012年 总版技术专家分年内排行榜第五
2016年2月 C/C++大版内专家分月排行榜第三2016年1月 C/C++大版内专家分月排行榜第三
2016年2月 C/C++大版内专家分月排行榜第三2016年1月 C/C++大版内专家分月排行榜第三
匿名用户不能发表回复!|

我要回帖

更多关于 java线程执行指定时间 的文章

 

随机推荐