首页 > 系统相关 >python(48) 进程,线程 ,协程、

python(48) 进程,线程 ,协程、

时间:2024-01-25 19:23:06浏览次数:32  
标签:协程 48 space python 线程 内核 进程 共享

python(48): 进程,线程 ,协程、

区别
进程:拥有代码和打开的文件资源、数据资源、独立的内存空间。
线程:线程从属于进程,是程序的实际执行者。一个进程至少包含一个主线程,也可以有更多的子线程。线程拥有自己的栈空间。

对操作系统来说,线程是最小的执行单元,进程是最小的资源管理单元。

进程--资源分配最小单位,线程,资源调度最小单位

协程:英文Coroutines,是一种比线程更加轻量级的存在。正如一个进程可以拥有多个线程一样,一个线程也可以拥有多个协程。

最重要的是,协程不是被操作系统内核所管理,而完全是由程序(用户/库)所控制(也就是在用户态执行)。

这样带来的好处就是性能得到了很大的提升,不会像线程切换那样消耗资源。

资源对比

进程:拥有自己独立的堆和栈,既不共享堆,也不共享栈,进程由操作系统调度;

线程:拥有自己独立的栈和共享的堆,共享堆,不共享栈,标准线程由操作系统调度;

协程:拥有自己独立的栈和共享的堆,共享堆,不共享栈,协程由程序员在协程的代码里显示调度

进程
进程与资源
学习 Linux 时,经常可以看到两个词:User space(用户空间)和 Kernel space(内核空间)。

简单说,Kernel space 是 Linux 内核的运行空间,User space 是用户程序的运行空间。为了安全,它们是隔离的,即使用户的程序崩溃了,内核也不受影响。

标签:协程,48,space,python,线程,内核,进程,共享
From: https://www.cnblogs.com/mengdie1978/p/17880076.html

相关文章

  • Python web crawler(2.1)多循环嵌套练习
    写个函数,传入(书名:book,标题:tittle,内容:content),要求在book文件夹下(不存在则创建),创建每个tittle.txt文件,写入content内容importosdefsave_to_file(folder_book,title,content):#如果文件夹不存在,则创建ifnotos.path.exists(folder_book):os.makedirs(......
  • OpenMP学习 第十章 超越通用核心的多线程
    第十章超越通用核心的多线程基于通用核心的附加子句并行构造的附加子句:num_threads(integer-expression)用于设置线程总数.if(scalar-expression)用于为并行构造提供条件分支.copyin(list)proc_bind(master|close|spread)为了测试num_threads子句与if子句的用法,......
  • python之生成器
    1.生成器优势节省空间:生成器按需生成值,避免了一次性加载所有数据到内存中。这对于处理大型数据集尤其重要。惰性计算:生成器支持惰性计算,只有在需要时才计算值。这在处理无限序列或需要动态生成数据的场景中非常有用。一次性使用:生成器通常是一次性的,一旦遍历完毕,就需要重新创......
  • locust+python性能测试库
    一.简介locust官网介绍:Locust是一个用于HTTP和其他协议的开源性能/负载测试工具。其对开发人员友好的方法允许您在常规Python代码中定义测试。Locust测试可以从命令行运行,也可以使用其基于Web的UI运行。可以实时查看吞吐量、响应时间和错误和/或导出以供以后分析。二.......
  • Python并发编程之进程池,线程池与信号量
    【一】进程池和线程池【0】池池的概念:资源管理:池用于管理和维护一组资源(如进程或线程),而不是每次需要时都创建和销毁这些资源。这有助于减少创建和销毁的开销。并发处理:池允许并发地执行多个任务,每个任务由池中的一个资源处理。这提高了程序的并发性能。任务队列:池通......
  • python之装饰器使用场景
    1.用户登录认证有三个界面需要登录认证通过后才能查看一个登录函数作为装饰器调用使用@函数名调用中如果加参数,则装饰器需要再加一层1deflogin(func):2defdesc(*args,**kwargs):3user='test'4passwd='123456'5n=06......
  • 详解ElasticSearch Python Client ReadTimeout
    详解ElasticSearchPythonClientReadTimeout在使用Python连接Elasticsearch时,我们经常会遇到一些异常情况,其中之一就是ReadTimeout错误。本文将详细介绍这个错误的原因以及如何处理。什么是ReadTimeout错误?ReadTimeout错误通常是由Elasticsearch连接超时引起的。当在与Elasticsea......
  • JAVA调用Python脚本执行
    SpringBoot-web环境<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency>springboot--启动类@SpringBootApplication(ex......
  • python代码
    #读取.mat文件mat_data=scipy.io.loadmat('C.mat')#获取矩阵数据adj_matrix=mat_data['C']一个简短的python代码:alph=['A','B','C','D','E','F','G','H','I','J......
  • Python基础语法:代码规范、判断语句与循环语句
    Python是一种高级、动态类型的编程语言,其语法清晰、简洁,易于学习。本文将介绍Python基础语法中的代码规范、判断语句和循环语句。一、代码规范良好的代码规范可以提高代码的可读性和可维护性。在Python中,有一些常见的代码规范建议:使用有意义的变量名。变量名应该清晰地描述变量的用......