进程和线程的基本特点和区别

时间:2019-02-11
本文章向大家介绍进程和线程的基本特点和区别,主要包括进程和线程的基本特点和区别使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

几乎所有的操作系统都支持同时运行多个任务,一个任务通常就是一个程序,每个运行中的程序就是一个进程。

当一个程序运行时,内部可能包含了多个顺序执行流,每个顺序执行流就是一个线程。

1、进程

进程是处于运行中的程序,具有一定的独立能力,是系统进行资源分配和调度的一个独立单位。

进程的特点:

  • 独立性
    • 独立存在的实体,拥有自己独立的资源,拥有自己的私有地址;
    • 在没有经过进程本身允许的情况下,一个用户进程不能访问其它进程地址空间。
  • 动态性
    • 程序只是一个静态的指令集合,而进程是一个正在系统中活动的指令集合;
    • 进程在程序中加入了时间概念,具有自己的生命周期和各种不同的状态。
  • 并发性
    • 多个进程可以在单个处理器上并发执行,不会互相影响。

2、线程

线程是进程的执行单元,也称为轻量级进程。

就像进程在操作系统中的地位一样,线程在程序中是独立、并发执行流,当进程被初始化后,主线程就被创建。

线程的特点:

  • 线程是进程的组成部分,一个线程必须有一个父进程,一个进程可以拥有多个线程;
  • 一个程序运行后至少有一个进程,一个进程至少包含一个线程;
  • 线程可以拥有自己的堆、栈、局部变量,但不能拥有系统资源。
  • 多个线程共享父进程的全部资源,相互之间协作共同完成进程所要完成的任务;

3、多线程

多线程的运行方式:

  • 线程是独立运行的,它并不知道进程中是否还有其它线程存在;
  • 线程的执行是抢占式的,当前运行的线程在任何时候都可以被扶起,以便其它线程运行;
  • 一个线程可以创建和撤销另一个线程,同一个进程中的多个线程可并发执行;
  • 多线程扩展了多进程,使同一个进程可以同时并发处理多个任务。

多线程的优点:

  • 进程之间不能共享内存,但线程之间共享内存很容易;
  • 系统创建进程需要重新分配系统资源、内存空间,但创建线程则很简单,因此用多线程来实现多任务并发比多进程效率高;