多线程多任务是什么意思?
多线程是为了使得多个线程并行的工作以完成多项任务,以提高系统的效率。线程是在同一时间需要完成多项任务的时候被实现的多任务是指用户可以在同一时间内运行多个应用程序,每个应用程序被称作一个任务。Windows就是一个支持多任务的操作系统,比起DOS的单任务系统,确实方便了许多
CPU多任务指的是什么?
CPU多任务顾名思义就是同时执行多个任务,对于CPU来说一个任务起码就是一个进程,你打开一个程序至少有一个进程,但是有可能你打开一个程序,比如登录了几个QQ,这时QQ在你电脑里起码有你登录的QQ的数量个进程,而一个进程下可能有好几个线程,这些线程可以说是最小的执行单元,比如你登着QQ,这个进程内有处理你发送聊天文字的线程,有实时接收消息的线程,有收发图片的线程,好了,CPU的多任务干啥呢?
1,多个进程的多任务,CPU同时处理这些进程的执行内容,进程内的线程任务还是串行运行,但从进程的角度来说做到了并行
2,多个线程的多任务,CPU同时处理每个这些线程来实现多任务,比如你播放电影,这个播放器的程序的音频播放,视频显示,视频解码的线程都实现了并行,这就提高了单个程序的执行速度
3,自然是多个进程 多个线程的多任务了,既有多个进程之间的并行,也有多个线程的并行
那你真要做到完全的多任务,从CPU角度肯定要有多线程的CPU了,不然CPU也没法同时执行多个线程的并行计算,但是有时有个问题,比如执行算数浮点计算的单元,需要超过20000个时钟周期做不同线程的切换,而通过同步超线程技术可以在单个周期的基础上决定要执行哪个线程,这使得CPU能更好地利用他整个核心的计算资源,假设一个线程必须等到某些数据装入缓存,那CPU就可以继续执行另一个线程,当然i7这种CPU是可以让每个核这样执行两个线程,还有可以执行更多的线程,这种也叫作线程级并发,也便是提高了CPU的利用率,多任务一般到这就行了
还有指令级并行,指令级并行更是为了单个程序的执行速度了,比如流水线结构,超标量,都能尽可能让处理器实现一个周期一条甚至多条指令的执行
再下来就是SIMD了,这也是近年CPU提升最快的点,MMX-SSE-AVX-AVX512,一条指令可以产生多个并行的操作,AVX512拥有512位ZMM寄存器,一次打包8个64位浮点或16个32位浮点数,一次完成16次32位浮点计算,配上FMA浮点融合乘加指令集,一次完成32次单精度浮点计算,再加上SKL-X最多两条AVX512 FMA流水线,最高峰值高达每核心64flops/每周期单精度浮点计算峰值,这便是SIMD并行
发表回复
要发表评论,您必须先登录。