知识大全 问一下,我的cpu是24核,但是我的程序只能用16核线程或者32核线程,是16快些还是32快些啊

Posted

篇首语:少年击剑更吹箫,剑气箫心一例消。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 问一下,我的cpu是24核,但是我的程序只能用16核线程或者32核线程,是16快些还是32快些啊相关的知识,希望对你有一定的参考价值。

问一下,我的cpu是24核,但是我的程序只能用16核线程或者32核线程,是16快些还是32快些啊?

如果楼主的处理器是24核心不支持超线程,那么只能在程序里设为用16线程运行,因为32线程已经超过你处理器的最大核心数量,不能设置或者设置了没有效果。
当然,如果楼主的处理器如果是24核心,48线程,那就设为32线程运行更快。
如有不懂之处请追问,问题解决后请及时采纳,谢谢。

用户线程和内核线程的区别

linux下线程分为用户级线程和内核级线程,在内核来看,线程和进程是一样的,本质上没有区别内核提供的是创建进程的接口do_fork()。内核提供了两个系统调用clone()和fork(),最终都用不同的参数调用do_fork()核内API。当然,要想实现线程,没有核心对多进程(其实是轻量级进程)共享数据段的支持是不行的,因此,do_fork()提供了很多参数,包括CLONE_VM(共享内存空间)、CLONE_FS(共享文件系统信息)、CLONE_FILES(共享文件描述符表)、CLONE_SIGHAND(共享信号句柄表)和CLONE_PID(共享进程ID,仅对核内进程,即0号进程有效)。当使用fork系统调用时,内核调用do_fork()不使用任何共享属性,进程拥有独立的运行环境,而使用pthread_create()来创建线程时,则最终设置了所有这些属性来调用__clone(),而这些参数又全部传给核内的do_fork(),从而创建的“进程”拥有共享的运行环境,只有栈是独立的,由__clone()传入。

  1. 内核线程权限为最高
  2. 用户线程的权限有限,很多系统核心区域是访问不到的

1 .内核级线程:切换由内核控制,当线程进行切换的时候,由用户态转化为内核态。切换完毕要从内核态返回用户态;可以很好的利用smp,即利用多核cpu。windows线程就是这样的。
2. 用户级线程内核的切换由用户态程序自己控制内核切换,不需要内核干涉,少了进出内核态的消耗,但不能很好的利用多核Cpu,目前Linux pthread大体是这么做的。
线 程的实现可以分为两类:用户级线程(User-Level Thread)和内核线线程(Kernel-Level Thread),后者又称为内核支持的线程或轻量级进程。在多线程操作系统中,各个系统的实现方式并不相同,在有的系统中实现了用户级线程,有的系统中实 现了内核级线程。

内核线程和用户线程的区别

1 .内核级线程:切换由内核控制,当线程进行切换的时候,由用户态转化为内核态。切换完毕要从内核态返回用户态;可以很好的利用smp,即利用多核cpu。windows线程就是这样的。
2. 用户级线程内核的切换由用户态程序自己控制内核切换,不需要内核干涉,少了进出内核态的消耗,但不能很好的利用多核Cpu,目前Linux pthread大体是这么做的。
线 程的实现可以分为两类:用户级线程(User-Level Thread)和内核线线程(Kernel-Level Thread),后者又称为内核支持的线程或轻量级进程。在多线程操作系统中,各个系统的实现方式并不相同,在有的系统中实现了用户级线程,有的系统中实 现了内核级线程。
用户线程指不需要内核支持而在用户程序中实现的线程,其不依赖于操作系统核心,应 用进程利用线程库提供创建、同步、调度和管理线程的函数来控制用户线程。不需要用户态/核心态切换,速度快,操作系统内核不知道多线程的存在,因此一个线 程阻塞将使得整个进程(包括它的所有线程)阻塞。由于这里的处理器时间片分配是以进程为基本单位,所以每个线程执行的时间相对减少。
内核线程:由操作系统内核创建和撤销。内核维护进程及线程的上下文信息以及线程切换。一个内核线程由于I/O操作而阻塞,不会影响其它线程的运行。Windows NT和2000/XP支持内核线程。
用户线程运行在一个中间系统上面。目 前中间系统实现的方式有两种,即运行时系统(Runtime System)和内核控制线程。“运行时系统”实质上是用于管理和控制线程的函数集合,包括创建、撤销、线程的同步和通信的函数以及调度的函数。这些函数 都驻留在用户空间作为用户线程和内核之间的接口。用户线程不能使用系统调用,而是当线程需要系统资源时,将请求传送给运行时,由后者通过相应的系统调用来 获取系统资源。内核控制线程:系统在分给进程几个轻型进程(LWP),LWP可以通过系统调用来获得内核提供的服务,而进程中的用户线程可通过复用来关联 到LWP,从而得到内核的服务。
以下是用户级线程和内核级线程的区别:
(1)内核支持线程是OS内核可感知的,而用户级线程是OS内核不可感知的。
(2)用户级线程的创建、撤消和调度不需要OS内核的支持,是在语言(如Java)这一级处理的;而内核支持线程的创建、撤消和调度都需OS内核提供支持,而且与进程的创建、撤消和调度大体是相同的。
(3)用户级线程执行系统调用指令时将导致其所属进程被中断,而内核支持线程执行系统调用指令时,只导致该线程被中断。
(4)在只有用户级线程的系统内,CPU调度还是以进程为单位,处于运行状态的进程中的多个线程,由用户程序控制线程的轮换运行;在有内核支持线程的系统内,CPU调度则以线程为单位,由OS的线程调度程序负责线程的调度。
(5)用户级线程的程序实体是运行在用户态下的程序,而内核支持线程的程序实体则是可以运行在任何状态下的程序。
内核线程的优点:
(1)当有多个处理机时,一个进程的多个线程可以同时执行。
缺点:
(1)由内核进行调度。
用户进程的优点:
(1) 线程的调度不需要内核直接参与,控制简单。
(2) 可以在不支持线程的操作系统中实现。
(3) 创建和销毁线程、线程切换代价等线程管理的代价比内核线程少得多。
(4) 允许每个进程定制自己的调度算法,线程管理比较灵活。
(5) 线程能够利用的表空间和堆栈空间比内核级线程多。
(6) 同一进程中只能同时有一个线程在运行,如果有一个线程使用了系统调用而阻塞,那么整个进程都会被挂起。另外,页面失效也会产生同样的问题。
缺点:
(1)资源调度按照进程进行,多个处理机下,同一个进程中的线程只能在同一个处理机下分时复用

  1. kernel thread 的权限始终是最高级,且永远不低于user thread,用户可以调整user thread级别而不能动kernel thread
  2. 每个user thread都有一个叫TCB(thread control block 线程控制单元)存放在kernel里面,用于存储当前线程运行状态(指令指针、线程运行状态等),kernel有权访问TCB而用户线程无权限。

  3. kernel 线程的作用是用来监视用户线程的状态已维护系统稳定和安全,同时也管理线程的运行和内存。当线程因为出现错误或者运行权限到期要进行context switch时,会主动向kernel发送中断信号并停止执行,将运行权限交给kernel,kernel的interrupt handler会对信号进行识别并进行相应处理。如果是错误信号,kernel会关闭该线程并且执行相应的错误处理。如果是context switch,kernel会把当前用户线程的状态保存到对应的TCB里面并且kernel里scheduler会选出下一个执行的用户线程并且将这个线程的TCB信息载入CPU里然后将CPU资源交给下一个用户线程。

Cpu16核32线程是什么意思?会不会有8核32线程的?

超线程是因特尔独家技术,简单的说就是,一个物理核心模拟出两个虚拟核心,一个虚拟核心相当于原来物理核心的百分之75的速度,也就是说,一个物理核心的速度是1G的话,单核心双线程就是1.5G。线程都是核心数量的两倍,双核四线的,四核八线的。。。所以不会有8核32线的。

内核线程和进程的区别

线程是针对硬件而讲,进程是针对软件(程序)而讲。
形象的比喻一下吧:马路的车道数量就是线程数量,马路上跑的汽车数量就是进程数量。很显然:线程越多同时并行的车就越多,交通就越顺畅;反之,进程越多,车就越拥堵。
对于CPU而言就是多线程可以同时运行多个程序,而对于单线程而言运行多个进程它们是交替进行的,所以进程越多交替执行就越慢。

有的书上的说法很多,去看《unix高级环境编程》吧,我还在看,收获很大。一般的说法:父进程开辟一个子进程,一般不共享内存空间,而是复制同样的值给子进程内存空间(堆,栈等)。线程是某一个进程的子进程,但它和此进程共享内存空间,避免了内存空间的复制。有的又说有的系统里线程和进程是同一个东西,反正你弄清楚进程与线程,进程与进程间怎样共享或不共享内存空间就可以了

相关参考

知识大全 今天面试一家很喜欢的公司,面试的过程中,我的表现有点差,但是我总抱着希望,我还有必要打电话问一下吗

今天面试一家很喜欢的公司,面试的过程中,我的表现有点差,但是我总抱着希望,我还有必要打电话问一下吗我觉得没有必要,我这几天也在找工作,也遇到过和你类似的问题。面试的第一映像很重要,你打电话过去能解释什

知识大全 帮忙算一下 我的工作是上12小时 歇24小时 请问一个月要上几个班啊

帮忙算一下我的工作是上12小时歇24小时请问一个月要上几个班啊?方程我也要!1.如果一个月28天(2月份):(28×24)÷(12+24)=18.7这个月你要上19个班2.如果一个月30天(4、6、9

知识大全 我的手机是诺基亚E71,但是主题安装完了用不了

我的手机是诺基亚E71,但是主题安装完了用不了?  以下文字资料是由(本站网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!我的手

知识大全 我的一些程序和游戏视频,怎么备份啊

我想重装系统,我觉的电脑中病毒了,所有想把所有的盘都重装了!我的一些程序和游戏视频,怎么备份啊?病毒不一定就在系统盘里``你恢复只能恢复系统盘你可以把电脑全面杀毒还有有的病毒杀毒软件查杀不了`你可以看

知识大全 我的皮肤是混合性偏油的,今年24,请问我适合用哪种品牌护肤品

我的皮肤是混合性偏油的,今年24,请问我适合用哪种品牌护肤品T区特别爱出油且毛孔很大的话,就说明你的皮肤很缺水的呢一定要注意保湿补水,而且还要注意面部的清洁呢一般情况下是一周2次去角质是必要的哦,还有

知识大全 我的电脑开机时候启动不了,显示器也没反应,只是主机风扇一直在转,可能是什么原因

我的电脑开机时候启动不了,显示器也没反应,只是主机风扇一直在转,可能是什么原因?1.把记忆体条拿出用橡皮檫一下记忆体条上的金手指(插口金属部分)2.把CPU取下来重新安装一下,安装时要安装紧这个问题我

知识大全 我用“啊拉QQ大盗”生成木马,但是别人用了,他的号和密码为什么都没被发在我的邮箱里,望高手指点一下。

我用“啊拉QQ大盗”生成木马,但是别人用了,他的号和密码为什么都没被发在我的邮箱里,望高手指点一下。  以下文字资料是由(本站网www.cha138.com)小编为大家搜

知识大全 想问一下,这花呗三百块用了下个月用不用还

想问一下,这花呗三百块用了下个月用不用还?不用啊,这是额度就是你能欠支付宝300块钱。你没用就不需要还我想问一下我的蚂蚁花呗用了几十块但是上面说我下个月需还款0元那不是下月1号蚂蚁花呗的账单就会生成,

知识大全 我的电脑为什么桌面文件鼠标无法选定,但是WIN7下面的快捷栏的程序还可以选定。

我的电脑为什么桌面文件鼠标无法选定,但是WIN7下面的快捷栏的程序还可以选定。  以下文字资料是由(本站网www.cha138.com)小编为大家搜集整理后发布的内容,让

知识大全 我的手机一直安装不了一些软件,显示程序未安装怎么办

我的手机一直安装不了一些软件,显示程序未安装怎么办?手机刷下机吧我的手机安装有些应用软件,怎么安装不了,(显示某应用程序未安装)可能原因:1.手机版本较低;2.手机运行内存太少。你可以去软件市场看一下