线程与进程以及他们区别
来源:互联网 发布:淘宝网连衣裙图片 编辑:程序博客网 时间:2024/06/05 18:08
概要
定义
进程:是并发执行的程序在执行过程中分配和管理资源的基本单位,是一个动态概念,竟争计算机系统资源的基本单位。每一个进程都拥有自己的地址空间,即进程空间或(虚空间)。进程空间的大小 只与处理机的位数有关,一个 16 位长处理机的进程空间大小为 216 ,而 32 位处理机的进程空间大小为 232 。进程至少有 5 种基本状态,它们是:初始态,执行态,等待状态,就绪状态,终止状态。
线程:在网络或多用户环境下,一个服务器通常需要接收大量且不确定数量用户的并发请求,为每一个请求都创建一个进程显然是行不通的,——无论是从系统资源开销方面或是响应用户请求的效率方面来看。因此,操作系统中线程的概念便被引进了。线程,是进程的一部分,一个没有线程的进程可以被看作是单线程的。线程有时又被称为轻权进程或轻量级进程,也是 CPU 调度的一个基本单位。
联系
一个线程可以创建和撤销另一个线程;同一个进程中的多个线程之间可以并发执行.
相对进程而言,线程是一个更加接近于执行体的概念,它可以与同进程中的其他线程共享数据,但拥有自己的栈空间,拥有独立的执行序列。
线程可以有效地提高系统的执行效率,但并不是在所有计算机系统中都是适用的,如某些很少做进程调度和切换的实时系统。使用线程的好处是有多个任务需要处理机处理时,减少处理机的切换时间;而且,线程的创建和结束所需要的系统开销也比进程的创建和结束要小得多。最适用使用线程的系统是多处理机系统和网络系统或分布式系统。
区别
线程的改变只代表了 CPU 执行过程的改变,而没有发生进程所拥有的资源变化。除了 CPU 之外,计算机内的软硬件资源的分配与线程无关,线程只能共享它所属进程的资源。
- 简而言之,一个程序至少有一个进程,一个进程至少有一个线程.进程拥有一个完整的虚拟地址空间,不依赖于线程而独立存在;反之,线程是进程的一部分,没有自己的地址空间,与进程内的其他线程一起共享分配给该进程的所有资源。
- 线程的划分尺度小于进程,使得多线程程序的并发性高。
- 另外,进程在执行过程中拥有独立的内存单元,而多个线程共享内存,从而极大地提高了程序的运行效率。
线程在执行过程中与进程还是有区别的。每个独立的线程有一个程序运行的入口、顺序执行序列和程序的出口。但是线程不能够独立执行,必须依存在应用程序中,由应用程序提供多个线程执行控制。
从逻辑角度来看,多线程的意义在于一个应用程序中,有多个执行部分可以同时执行。但操作系统并没有将多个线程看做多个独立的应用,来实现进程的调度和管理以及资源分配。这就是进程和线程的重要区别。
线程在执行过程中与进程还是有区别的。每个独立的线程有一个程序运行的入口、顺序执行序列和程序的出口。但是线程不能够独立执行,必须依存在应用程序中,由应用程序提供多个线程执行控制。
从逻辑角度来看,多线程的意义在于一个应用程序中,有多个执行部分可以同时执行。但操作系统并没有将多个线程看做多个独立的应用,来实现进程的调度和管理以及资源分配。这就是进程和线程的重要区别。
参考资料
- 线程与进程以及他们区别
- 关于线程与进程与他们之间的区别
- 线程与进程区别以及线程作用
- 线程与进程,以及两者的联系与区别。
- JAVA中的线程以及与进程的区别
- 【Linux/OS/Network】线程以及其与进程区别
- 进程与线程的区别以及通信方式
- Linux线程的操作以及与进程的区别
- 进程和线程以及区别
- 进程与线程区别
- 进程与线程区别
- 线程与进程区别
- 进程与线程区别
- 进程与线程区别
- 线程与进程区别
- 进程与线程区别
- 线程与进程区别
- 进程与线程区别
- 我的那条狗_回家
- 使用redis的java客户端-----jedis
- Java基础之线程状态
- C++中cout和cerr的区别?
- json 输出到 table
- 线程与进程以及他们区别
- 奋斗群群赛6总结与心得
- Qt之丰富的容器类---数组QVector、链表QLinkedList、映射表QMap、哈希表QHash
- Java:笔记随笔1
- 【龙芯1c库】封装硬件I2C接口和使用示例
- 数据库知识点杂记
- 测试
- html 锚点的使用
- css-9.仿京东注册页面