首页 > 系统相关 >进程与线程

进程与线程

时间:2023-03-04 11:36:31浏览次数:39  
标签:操作系统 程序 单位 线程 进程 执行

被选为在计算机网络课上进行分享的人,准备分享近些天在Android编程时发现不了解的知识

进程:

定义:进程是一个具有一定独立功能的程序关于某个数据集合的一次运行活动。它是操作系统动态执行的基本单元,在传统的操作系统中,进程既是基本的分配单元,也是基本的执行单元。

进程的概念主要有两点:

  第一,进程是一个实体。每一个进程都有它自己的地址空间,一般情况下,包括文本区域(text region)、数据区域(data region)和堆栈(stack region)。文本区域存储处理器执行的代码;数据区域存储变量和进程执行期间使用的动态分配的内存;堆栈区域存储着活动过程调用的指令和本地变量。

   第二,进程是一个“执行中的程序”。程序是一个没有生命的实体,只有处理器赋予程序生命时(操作系统执行之),它才能成为一个活动的实体,我们称其为进程。

操作系统引入进程的概念的原因:

  从理论角度看,是对正在运行的程序过程的抽象;

   从实现角度看,是一种数据结构,目的在于清晰地刻画动态系统的内在规律,有效管理和调度进入计算机系统主存储器运行的程序。

特征:

   动态性:进程的实质是程序在多道程序系统中的一次执行过程,进程是动态产生,动态消亡的。

   并发性:任何进程都可以同其他进程一起并发执行

  独立性:进程是一个能独立运行的基本单位,同时也是系统分配资源和调度的独立单位;

   异步性:由于进程间的相互制约,使进程具有执行的间断性,即进程按各自独立的、不可预知的速度向前推进

  结构特征:进程由程序、数据和进程控制块三部分组成。

线程:

线程(英语:thread)是操作系统能够进行运算调度的最小单位。它被包含在进程之中,是进程中的实际运作单位。

特征:

  1)轻型实体

  2)独立调度和分派的基本单位。

   3)可并发执行。

   4)共享进程资源。

进程与线程的区别与关系:

  线程具有许多传统进程所具有的特征,故又称为轻型进程(Light—Weight Process)或进程元;而把传统的进程称为重型进程(Heavy—Weight Process),它相当于只有一个线程的任务。在引入了线程的操作系统中,通常一个进程都有若干个线程,至少包含一个线程。

  根本区别:进程是操作系统资源分配的基本单位,而线程是处理器任务调度和执行的基本单位。

  包含关系:如果一个进程内有多个线程,则执行过程不是一条线的,而是多条线(线程)共同完成的;线程是进程的一部分,所以线程也被称为轻权进程或者轻量级进程。

   影响关系:一个进程崩溃后,在保护模式下不会对其他进程产生影响,但是一个线程崩溃整个进程都死掉。所以多进程要比多线程健壮。

标签:操作系统,程序,单位,线程,进程,执行
From: https://www.cnblogs.com/wrf1/p/17177930.html

相关文章

  • 线程sleep休眠的应用
    packagecom.Java;importjava.text.SimpleDateFormat;importjava.util.Date;//每个对象都有一个锁sleep不会释放锁publicclassTestSleep{publicstaticvoidmai......
  • 并发创建多少个线程合适
    前言使用多线程的目的是为了提升程序性能,在并发编程领域,提升性能本质上就是提升硬件的利用率,再具体点,就是提升I/O的利用率和CPU的利用率,而解决的方案就是多线程。那......
  • 线程的停止(建议线程正常运行停止)
    packagecom.Java;publicclassTestStopimplementsRunnable{//测试线程停止//1.建议线程正常停止-->利用次数不建议死循环//2.建议使用标志位-->设置一......
  • 多进程
    frommultiprocessingimportProcessdeftask(name):foriinrange(10000):print(f"{name}:",i)if__name__=='__main__':p=Process(target......
  • 多线程
    #线程类fromthreadingimportThreaddeffunc():foriinrange(1000):print("func",1)if__name__=='__main__':t=Thread(target=func......
  • 用户级线程和内核级线程
    用户级线程的特点:不需要修改内核代码,内核不知道线程的存在,所有的线程管理都由应用程序管理。用户级线程的优点:所有的线程都在用户空间,所以它在切换线程时不需要从用户态切......
  • 该如何正确的中断一个线程的执行?
    摘要:本文以一个案例的形式,来为大家详细介绍下为何中断执行的线程不起作用。本文分享自华为云社区《【高并发】我们该如何正确的中断一个线程的执行??》,作者:冰河。写在前......
  • 不规范使用PageHelper导致线程污染出现报错
    问题复现:在原有项目基础上开发获取最新的第一个模板的接口。接口中只有一个查询sql:selectxfromxwherexlimit1。调试总是报错:org.springframework.jdbc.BadSqlGr......
  • 全局视角看技术-Java多线程演进史
    作者:京东科技文涛全文较长共6468字,语言通俗易懂,是一篇具有大纲性质的关于多线程的梳理,作者从历史演进的角度讲了多线程相关知识体系,让你知其然知其所以然。前言2022......
  • linux下进程和线程的区别和联系
    进程用fork()或者vfork()生成(vfork是专门为了加载其他程序的子程序而优化的,随着fork()的优化,vfork已经被优化)fork()生成的子进程与父进程共享代码区内存,对于其他内存fork......