进程与线程区别
进程是cpu资源分配的最小单位,线程是cpu调度的最小单位。
一个程序至少有一个进程,一个进程至少有一个线程。线程依赖于进程才能运行
线程本身拥有很少资源(线程标识符、程序计数器、一组寄存器的值、堆栈),与同属进程的其他线程共享进程拥有的资源(代码段、数据段、打开的文件、I/O设备等)。
线程开销小,但一个线程死掉等于整个进程死掉,不利于资源管理和保护。而进程正好相反,开销大,但相对线程安全。
线程从创建、运行到结束总是处于下面五个状态之一:新建状态、就绪状态、运行状态、阻塞状态及死亡状态。
具体的运行过程如下:
1、通过new关键字创建后,进入到新生状态
2、调用start后进入就绪状态
3、CPU调度到本线程后,本线程开始执行。进入到运行状态
4、运行中遇到join,yield,sleep造成阻塞,进入阻塞状态。阻塞完成后,又回到就绪状态
5、线程正常执行完,或者遇到异常终止后,进入死亡状态