更新了文档中的笔误

This commit is contained in:
jackfrued 2025-03-28 18:29:18 +08:00
parent d8d8b938c3
commit 7a798e481d
2 changed files with 7 additions and 7 deletions

View File

@ -10,7 +10,7 @@
# 定义一个三元组 # 定义一个三元组
t1 = (35, 12, 98) t1 = (35, 12, 98)
# 定义一个四元组 # 定义一个四元组
t2 = ('骆昊', 43, True, '四川成都') t2 = ('骆昊', 45, True, '四川成都')
# 查看变量的类型 # 查看变量的类型
print(type(t1)) # <class 'tuple'> print(type(t1)) # <class 'tuple'>
@ -36,7 +36,7 @@ for elem in t1:
# 成员运算 # 成员运算
print(12 in t1) # True print(12 in t1) # True
print(99 in t1) # False print(99 in t1) # False
print('Hao' not in t2) # False print('Hao' not in t2) # True
# 拼接运算 # 拼接运算
t3 = t1 + t2 t3 = t1 + t2

View File

@ -1272,7 +1272,7 @@ Python中实现并发编程的三种方案多线程、多进程和异步I/O
> 2. 程序的输入可以并行的分成块,并且可以将运算结果合并。 > 2. 程序的输入可以并行的分成块,并且可以将运算结果合并。
> 3. 程序在内存使用方面没有任何限制且不强依赖于I/O操作读写文件、套接字等 > 3. 程序在内存使用方面没有任何限制且不强依赖于I/O操作读写文件、套接字等
- 异步处理从调度程序的任务队列中挑选任务该调度程序以交叉的形式执行这些任务我们并不能保证任务将以某种顺序去执行因为执行顺序取决于队列中的一项任务是否愿意将CPU处理时间让位给另一项任务。异步任务通常通过多任务协作处理的方式来实现由于执行时间和顺序的不确定因此需要通过回调式编程或者`future`对象来获取任务执行的结果。Python 3通过`asyncio`模块和`await`和`async`关键字在Python 3.7中正式被列为关键字)来支持异步处理。 - 异步处理:从调度程序的任务队列中挑选任务,该调度程序以交叉的形式执行这些任务,我们并不能保证任务将以某种顺序去执行,因为执行顺序取决于队列中的一项任务是否愿意将 CPU 处理时间让位给另一项任务。异步任务通常通过多任务协作处理的方式来实现,由于执行时间和顺序的不确定,因此需要通过回调式编程或者`future`对象来获取任务执行的结果。Python 3 通过`asyncio`模块和`await`和`async`关键字(在 Python 3.7 中正式被列为关键字)来支持异步处理。
```Python ```Python
""" """
@ -1329,7 +1329,7 @@ Python中实现并发编程的三种方案多线程、多进程和异步I/O
> **说明**:上面的代码使用`get_event_loop`函数获得系统默认的事件循环,通过`gather`函数可以获得一个`future`对象,`future`对象的`add_done_callback`可以添加执行完成时的回调函数,`loop`对象的`run_until_complete`方法可以等待通过`future`对象获得协程执行结果。 > **说明**:上面的代码使用`get_event_loop`函数获得系统默认的事件循环,通过`gather`函数可以获得一个`future`对象,`future`对象的`add_done_callback`可以添加执行完成时的回调函数,`loop`对象的`run_until_complete`方法可以等待通过`future`对象获得协程执行结果。
Python中有一个名为`aiohttp`的三方库它提供了异步的HTTP客户端和服务器这个三方库可以跟`asyncio`模块一起工作,并提供了对`Future`对象的支持。Python 3.6中引入了`async`和`await`来定义异步执行的函数以及创建异步上下文在Python 3.7中它们正式成为了关键字。下面的代码异步的从5个URL中获取页面并通过正则表达式的命名捕获组提取了网站的标题。 Python 中有一个名为`aiohttp`的三方库,它提供了异步的 HTTP 客户端和服务器,这个三方库可以跟`asyncio`模块一起工作,并提供了对`Future`对象的支持。Python 3.6中引入了`async`和`await`来定义异步执行的函数以及创建异步上下文,在 Python 3.7 中它们正式成为了关键字。下面的代码异步的从5个URL中获取页面并通过正则表达式的命名捕获组提取了网站的标题。
```Python ```Python
import asyncio import asyncio
@ -1369,8 +1369,8 @@ Python中实现并发编程的三种方案多线程、多进程和异步I/O
> **重点****异步I/O与多进程的比较**。 > **重点****异步I/O与多进程的比较**。
> >
> 当程序不需要真正的并发性或并行性,而是更多的依赖于异步处理和回调时,`asyncio`就是一种很好的选择。如果程序中有大量的等待与休眠时,也应该考虑`asyncio`它很适合编写没有实时数据处理需求的Web应用服务器。 > 当程序不需要真正的并发性或并行性,而是更多的依赖于异步处理和回调时,`asyncio`就是一种很好的选择。如果程序中有大量的等待与休眠时,也应该考虑`asyncio`,它很适合编写没有实时数据处理需求的 Web 应用服务器。
Python还有很多用于处理并行任务的三方库例如`joblib`、`PyMP`等。实际开发中要提升系统的可扩展性和并发性通常有垂直扩展增加单个节点的处理能力和水平扩展将单个节点变成多个节点两种做法。可以通过消息队列来实现应用程序的解耦合消息队列相当于是多线程同步队列的扩展版本不同机器上的应用程序相当于就是线程而共享的分布式消息队列就是原来程序中的Queue。消息队列面向消息的中间件的最流行和最标准化的实现是AMQP高级消息队列协议AMQP源于金融行业提供了排队、路由、可靠传输、安全等功能最著名的实现包括Apache的ActiveMQ、RabbitMQ等。 Python 还有很多用于处理并行任务的三方库,例如:`joblib`、`PyMP`等。实际开发中要提升系统的可扩展性和并发性通常有垂直扩展增加单个节点的处理能力和水平扩展将单个节点变成多个节点两种做法。可以通过消息队列来实现应用程序的解耦合消息队列相当于是多线程同步队列的扩展版本不同机器上的应用程序相当于就是线程而共享的分布式消息队列就是原来程序中的Queue。消息队列面向消息的中间件的最流行和最标准化的实现是 AMQP高级消息队列协议AMQP 源于金融行业提供了排队、路由、可靠传输、安全等功能最著名的实现包括Apache ActiveMQ、RabbitMQ 等。
要实现任务的异步化,可以使用名为`Celery`的三方库。`Celery`是Python编写的分布式任务队列它使用分布式消息进行工作可以基于RabbitMQ或Redis来作为后端的消息代理。 要实现任务的异步化,可以使用名为`Celery`的三方库。`Celery`是 Python 编写的分布式任务队列,它使用分布式消息进行工作,可以基于 RabbitMQ Redis 来作为后端的消息代理。