单线程多线程、并行和并发

单线程多线程、并行和并发


单核与多核

单核就是CPU集成了一个运算核心,双核就是两个运算核心,相当于两个CPU一起工作。

x64和x86

x86是对基于intel处理器的系统的标准缩写,它是对所有*86系统的简单通配符定义,例如8086,80286等等,这些CPU都是指令兼容的,所以都用x86来标识。
这里,64位是相对于32位而言的,这个位数是指CPU General-Purpose Registers,通用寄存器的数据宽度为64位,64位指令集就是运行64位数据的指令,也可以说处理器一次可以运行64bit数据。
64bit有两大有点:可以进行更大范围的整数运算,可以支持更大范围的内存。
除此以外,指针在x86中是四个字节,而在x64中是8个字节,这也是为什么64bit可以支持更大范围的内存;各基本类型如下

    i = sizeof(int);            // x86:4        x64:4  
    i = sizeof(long);           // x86:4        x64:4  
    i = sizeof(void*);          // x86:4        x64:8  
    i = sizeof(short);          // x86:2        x64:2  
    i = sizeof(float);          // x86:4        x64:4  
    i = sizeof(double);         // x86:8        x64:8  
    i = sizeof(int*);           // x86:4        x64:8  
    i = sizeof(WORD);           // x86:2        x64:2  
    i = sizeof(DWORD);          // x86:4        x64:4  
    i = sizeof(LONGLONG);       // x86:8        x64:8  
    i = sizeof(HANDLE);         // x86:4        x64:8  
    i = sizeof(HWND);           // x86:4        x64:8  
    i = sizeof(bool);           // x86:1        x64:1  
    i = sizeof(char);           // x86:1        x64:1  

并发和并行

并行,是指两个或者多个事件在同一时刻发生;并发,是指两个或多个事件在同一时间间隔内发生,在操作系统中,并发是指有几个程序都处于启动运行和运行完毕之间,而且几个程序都是在同一CPU上,但是任意时刻点只有一个程序在CPU上运行。
并发程序之间,除了竞争某一相同资源,例如处理器,缓冲区,变量等等之外,还存在直接制约,体现为某一程序需要另一个程序的计算结果。
网络服务器上,并发指的是同一时刻能处理的连接数,比如服务器能建立1000个tcp连接,即服务器同时维护1000个socket,并发树即为1000.
并行强调同时进行,并发则可以使用时间片来间隔实现。

效率问题

实际上,这个可以考虑为并行和并发的效率问题,并行当然可以提升效率,但是并发则不然。
对于单核CPU,如果能够使用单线程较好的利用CPU,那么效率较高,而使用多线程并发,则存在等待时间,此时效率不一定高
而对于多核CPU,如果能够使用多线程并行执行任务,那么效率比单线程要高。

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值