最近一直在读操作系统这本书,读了好久了,今天想写一下,自己对进程,线程的理解。
想来想去,还是用一个程序来解释一下吧!
请看下面的程序
#include<stdio.h>
int main()
{
int a=0,b=0;
a=3;
b=4;
printf("%d %d",a,b);
return 0;
}
我写的是一个主函数,其实我想说,进程其实就是一个程序的一次执行,那怎样执行呢,在操作系统中,我们有一个存储器叫做主存储器,简称主存。而我们程序的执行其实就是把程序加载到主存中,我们的程序中写的其实就是我们一步一步的执行步骤,我们把一个程序执行完了,也就是我们的一个进程结束了。
二 下面我再来写一个函数
#include<stdio.h>
int main()
{
int a=0;
int b=0;
scanf("%d %d",&a,&b);
if(a>b)
printf("%d",a);
else
printf("%d",b);
}
大家看一看,这个函数是不是会输出两个可能的值,当然这取决于你的输入是多少,如果你输入的a大于b,则会输出a,否则则会输出b。这个程序会有两个可能输出的值,意思就是这个程序包含着两个进程,那就是说,如果一个程序只有一个输出结果,这个程序就只有一个线程,那就是这个程序本身。一个程序可以含有一个或多个线程,我们的操作系统根据程序的逻辑,来执行线程。因此线程是对于操作系统来说的,而进程是对于cpu来说的。
这是我对进程线程的理解,其实我们引进线程这个概念是为了描述我们程序执行的情况的,即这个程序执行到了哪里,如果没有进程这个概念,那我们该怎样来描述程序的执行状态呢。