计算机底层原理之进程和线程

进程

一个程序进入到内存,被称之为进程。

一个QQ.exe可以运行多份么?

可以的,一个程序可以运行多个进程。也就是可以打开两个qq。

同一个进程内部:有多个任务兵法执行的需求(比如,一边计算,一边接受网络数据,一边刷新界面)

能不能用多进程?可以,但是毛病多,最严重的毛病是,我可以很轻松的搞死别的进程。

所以就诞生了线程,共享空间,不共享数据。
进程是静态的:程序进入内存,就会分配对应的资源:内存空间。进程进入内存,同时产生了一个主线程。

线程

线程是动态的:是可执行的计算单元。线程共享进程的空间,如果多个线程同时操作同一个资源,也就是多并发。

一个CPU只有一个内核,一个ALU同一个时间只能执行一个线程。

线程切换(OS)


t1线程在cpu中执行到了0.0001ms的时候,到时间了,需要执行T2线程,这个时候将T1执行到那个指令和寄存器的状态放在缓存中(保存上下文),这个缓存位于这个进程的空间中,保存现场。等T2执行到了一个时间后,再从缓存中将T1的上下文取出来,然后继续执行。

是不是线程数量越多,执行效率越高?

线程越多的话,会有一个切换的过程,耗时也是很多的。

单核CPU多线程执行有没有意义?

有意义。因为一个线程执行到一半的时候,需要将资源让给其他的线程继续执行。

对于一个程序,设置多少个线程合适?

posted @ 2023-06-09 01:25  King-DA  阅读(35)  评论(0)    收藏  举报