[关注] 2025-05-02 圈点102
摘要:从编程的角度理解进程线程
从编程的角度理解进程线程
1,关于CPU的cpu数,核心数,进程数
目前常见的是一块主板安装一个CPU,多个核心多个线程。比如 amd公司的 3950X 已经高达64核128线程。
还有一些情况,在一块主板上可以同时安装多个cpu的,服务器上比较常见。
比如64核128线程,其实是将每一个物理核心分成2个线程来共用。
2,线程
理解方法,网络上其实挺多说法,看得多了就会非常乱。其实都是对的,只是出发点不同,角度不同,应用场景不同。
它和进程一样,网络上说法挺多,看得多以致自乱。
从编程语言上来说,它比进程容易理解。
简单来说,在没有进行线程语句操作的情况下,编程语言基本上都是单线程语言,比如你在一个64核128线程的CPU中跑一个没有线程操作的程序代码,那它最多只能用到128个线程中的一个线程,至于具体用到了哪一个线程可以理解成是随机的。
多线程指的是具体能用到CPU中多少路的线程。
比如像64核心128线程的CPU,如果用在游戏上,根本发挥不了它的实际功效。因为绝大部分的游戏没有优化到可以用这么多的核心和线程,就是说它有很多核心是在空转,没有用到。
备注:
有时候吧,英文也是挺复杂挺矛盾的一个东西,有些语言它用thread代表的是进程的概念,有些语言它是用process代表的是线程的概念。单从翻译上来说,线程的英文单词是thread
3,进程
理解方法,网络上其实挺多说法,看得多了就会非常乱。其实都是对的,只是出发点不同,角度不同,应用场景不同。
单从程序编程上来说,进程比线程稍复杂一点,进程简单理解可以这样想,
从编程上来说,假设写了一个程序,程序中只有两个单独功能,一个是读,另一个写。那么读可以说是一个进程,写也是一个进程。它可以先读后写,也可以先写后读,或者是读写同时进行,看实际的场景需要。
一般来说,同一个程序的不同进程会在同一个线程中,当然也可以在不同的线程中,看实际需要。
进程可以理解成是一个程序中的最小小功能或者最小小模块,它可以按实际需要选择是否在不同的线程中运行(一般需要代码实际实现在不同的线程中,否则一般是在同一个线程中运行)。
和线程的备注相同,进程本身的英文单词是process,但不同的语言对于thread/process的概念会有一些混排的情况。
4,协程
协程其实是在同一线程中的进程。
比如,在写某个程序的时候,需要调出一个协程,这个协程一般就是在主程序所在占用CPU线程中添加的一个进程。
上一篇[关注]目前常见的6种加密算法对比(2)