这两个过程需要相互作用,并且需要通信的帮助。通过过程之间的队列进行通信,队列可以解决该过程模块执行的函数无法获得返回值的问题
队列是一种数据结构。队列中的数据存储的特征是首先输入,首先或输入后。
多线程模块多派对肖像相关功能
此时收到数据后,该程序不停,而是继续运行。您需要调用该函数以终止程序并在脚本末尾添加代码
将批量消息放入队列中,然后添加send_list()函数
如果程序可以正常停止,只需阻止最长的过程
线程是系统的最小调度单元。与过程相比,线程很低。可以通过线程模块下的线程函数创建线程。线程对象的相关方法是:
通过随机函数选择列中的元素,从列表中删除元素,然后添加另一个列表,直到列表为空
使用多线程处理,首先导入线程模块以在主函数中修改代码
在周期中创建10个线程,执行每个线程,并且整个时间都非常短。
通过线程执行任务存在:
线程之间的通信也需要使用队列
线程池可以避免线程创建和破坏带来的消费。线程池需要由Futures.threadpoolexecutir创建。
首先介绍confult.futures.thread软件包
当控制台输出结果几乎是两个信息同时打印的两个信息时,因为此时两个线程正在执行任务
线程锁后,只能一个一个一个人执行
修改Hallo()函数,返回信息参数,并在锁定代码上发表评论
线程池通过提交提交任务执行,并返回将来的对象。您可以通过调用result()函数调用结果()函数来获得任务执行的返回值。
Python解释器在执行时会自动添加锁定,导致在多核中无法执行Python中的多线程。它只能在一个核心上执行。该锁是吉尔锁。GIL是全球解释器锁,而不是Python的特征。这是Cpython解释器中引入的概念。
吉尔锁的角色:
在CPYTHON的说明中,当Python代码具有开始访问解释器的线程时,GIL将锁定此线程。此刻,线程只能在此刻等待。此线程释放锁,另一个线程开始运行
异步相对于同步。同步是指按顺序逐步执行的过程。异步是无序的。最后一步完成后,您可以执行下一步。
异步编程是一种并发编程的模式。重点是通过安排不同任务之间的执行和等待时间来减少整个程序的执行时间;区别在于其任务的切换。当我们遇到需要等待很长时间的任务时,我们可以切换到其他任务
异步和等待关键词:
相关功能
将同步化更改为异步执行方法
执行Zulu()和Tango()的两个函数,时间缩短了一半
PID在Zulu函数和Mian函数的Mian函数中打印
与多线程和多进程编程模型相比,异步编程只是同一线程中的任务调度
需要通过PIP安装Gevent异步袋
gevent异步模块通用方法
调用值属性以从coroutine对象获取函数的返回值
原始:https://juejin.cn/post/7096044902961659917