当前位置: 首页 > 网络应用技术

从零到英雄(9)的python - 优势和线程(A部分)

时间:2023-03-08 00:04:50 网络应用技术

  对于操作系统,任务是一个过程。该过程是程序执行的载体。例如,如果主函数是在Python脚本中执行的,则启动了一个过程。打开微信或浏览器是要打开一个过程。该过程的操作需要资源支持。它还需要消耗CPU和内存

  多过程是同时运行多个过程,例如在听音乐时使用Chrome听音乐。这是多过程(任务)。

  线程是操作系统的最小执行单元。该过程至少由一个线程组成。如何安排过程和线程。它完全由操作系统确定。该程序无法决定何时执行。例如,微信可以是语音,文本,视频聊天等。

  该过程由线程组成。线程是任务逻辑的角色。该过程提供了线程执行程序的正面要求。

  打开浏览器是开始一个过程并获得足够的资源。通过主过程中的主线程执行业务逻辑,主线程创建了与浏览器的多个选项卡页面相对应的多个线程。

  创建过程需要用于使用多处理模块。该模块中的共同函数是:

  导入OS模块,分别将PID分别用于循环和主要功能

  根据控制台的打印,可以解释说两个周期的两个过程是在同一过程中执行的,并且首先是在Alpha中执行FOR循环,然后在Bravo中执行FOR循环。

  使用多过程可以提高程序的执行效率,导入程序中的多过程模块多处理,修改主函数,创建一个新过程来执行Alpha函数

  几乎同时执行两个循环。Bravo在主过程中执行,并且Alpha在其他过程中执行。

  创建另一个过程来执行BRAVO函数。当前程序中有三个过程,这是执行alpha的过程

  子过程和主过程不会互相影响,因此时间差很短,但是我们希望时间从执行的开始到结束。

  修改主函数中的代码

  孩子过程结束后,去执行主过程

  注意循环。执行A子过程后,调用Join()函数,调用B函数

  此时的时间差就是时间 - 令人费解,即执行alpha函数。执行Alpha函数后,BRAVO函数开始执行

  关闭Alpha_P和Bravo_P的执行

  实施Alpha和Bravo之后,两个过程都已经关闭

  多线程的优点是缩短脚本的执行时间并提高执行效率

  多个过程有问题

  过程池的概念类似于数据库连接池的概念。这是为了提高效率并避免闭合线程的消耗。

  过程池中的多过程模块多处理相关功能

  该过程反复使用。在这里调用异步,并且异步是非同步的,这导致过程编号在前后使用

  在过程池结束之前,主要过程结束了,程序结束了,并且过程池已关闭

  将代码添加到time.sleep()函数,并对完成的20个任务进行评论。您需要传递CLOSE()函数和JOIN()函数,退出程序

  alpha()函数添加了返回,异步可以获取返回值

  第一组首先执行,在执行完成后打印结果,第二组也开始执行

  当过程启动任务时,为了避免其他任务使用,需要控件。只有解锁后,才能执行下一个任务。

  过程锁定功能:获取:锁定,无参数,无返回值发布:锁,没有参数,无返回值

  每个过程中只有一个过程,锁不能滥用。如果未解锁锁,则会导致僵局。

  原始:https://juejin.cn/post/709575555994652680