怎么关闭程序里面的超线程

怎么关闭程序里面的超线程,第1张

解决办法:

①运行程序后打开任务管理器,进入进程管理,找到该程序的进程,右键此进程,选择cpu关系,关了cpu

1(cpu

0别关哈)...再运行该程序.要是还不行,就用下面方法:

②开机按

〈DEL〉或F2

键进入

〈BIOS〉

设置

选择

〈Advanced〉

菜单

然后选

〈CPU

Configuration〉

〈Hyper

Threading

Technology〉

项设置为

〈Disabled〉

保存退出

说明:①方法是用来关闭一个程序使用两个核这种情况的,②方法因为关闭了超线程,使电脑变成了单核。

③第三种方法(强烈推荐)还可以,按开始菜单--运行--输入“msconfig”(无引号)后回车调出系统配置实用程序--选择“BOOT.INI“选项卡--点击“昌薯高级选项”--把“/NUMPROC(N)=”前面的方框打钩(此时默认数字是1)--确定后系统提示重新启动计算机

重启后即只开一个核

原理:很简单从系统启动时就自动关闭一个核心

也就键冲是在加载系统时以一个核心来运行系统

BOOT.INI中设置的/NUMPROC是设置cpu核心数量的设置

双核cpu可以设置成1(单核)

设置成2或者把前面对钩去掉都是设回双核

每次设置确定后必须重新启动计算机

注意:此方法只适用于xp和2003系统

如果舍不得那就慢慢等微软出sp3来解决双核问题吧~~~~

要打够双核CPU补丁,否则耐亮者有些游戏或软件程序可能无法正常运行

如果系统无法认出有双核,还原(恢复)系统后仍不行,就要重装系统后才能认出

1. 线程函数返回

当线程函数返回时银瞎,该线程会被终止,始终应该采用该方式来结束线程的运行,因为这是确保所有线程资源被正确清除的唯一办法。如果线程按照该方式成功返回,则:

1)线程函数中创建的所有C++对象均能通过他们的析构函数正确的被撤销

2) *** 作系统将正确的释放线程运行栈所使用的内存

3)系统将线程的退出代码(在线程的内核对象中维护)设置为线程函数的返回值

4)系统将该线程内核对象的使用计数递减

2.ExitThread函数

可以调用该函数,强制终止线程的运行。该函数将导致 *** 作系统清除该线程所使用的所有 *** 作系统资源。但是,C++资源(如类对象)将不被撤销。该方法通常是windows用来撤销线程的函数。因此,最好采用方法1来退出线程,而不是通过调用该函数来返回。

3.TerminateThread函数

调用该函数也能终止线程的运行,但与ExitThread函数不同,后者总是撤销调用的线程,而前者能够撤销任何线程。TerminateThread是异步运行的函数,也就是说,它告诉系统你想要线程终止运行,但是,该函数返回时,不能保证线程被撤销。如岩亏果需要确切地知道该线程已经终止运行,必须调用WaitForSingleObject或类似函数。当使用方法1和方法2撤销线程时,该线程的内存栈空间也被撤销。而如果使用TerminateThread,那么在拥有该线程的进程终止运行之前,系统不撤销该线程的运行栈。

4.进程终止运行时终止线程

在进程终止运行时,该进程中的所有线程全部终止运行,由于整个进程已经被关闭,进程所使用的所有粗搏神资源肯定已被清除。这当然包括所有线程的栈空间。使用ExitProcess和TerminateProcess函数,会导致进程中的剩余线程被强制撤销,就像从每个剩余的线程调用TerminataProcess一样,因此,这也意味着正确的应用程序清除没有发生,即C++对象析构函数没被调用,数据没有转移至磁盘等等。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12346982.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-24
下一篇 2023-05-24

发表评论

登录后才能评论

评论列表(0条)

保存