![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
python
文章平均质量分 78
Wallace Zhang
目标:
有朝一日,自己能独立完成一个机器人。
博客初衷:
将学习到的知识分享给大家,一起学习,同时自己又能再一次提高对知识的理解(费曼定理)
爱好:
喜欢手冲黑咖啡。
展开
-
Python | threading05 - 使用有界信号量,实现线程间同步
文章目录一、前言二、ValueError异常2.1、测试有界信号量过多释放是否真的会产生ValueError异常三、生产者-消费者模型3.1、代码3.2、运行的结果一、前言上一节学习完信号量,接着继续学习有界信号量。首先看看python官方对有界信号量的描述:从官方的描述可以看到,release( )方法过多被调用时,就会产生ValueError异常。二、ValueError异常2.1、测试有界信号量过多释放是否真的会产生ValueError异常我在命令行测试了一下,过多的释放的确会产生原创 2022-01-16 20:07:00 · 651 阅读 · 0 评论 -
Python | threading04 - 使用信号量,实现线程间同步
文章目录一、前言二、生产者-消费者模型2.1、代码2.2、运行的结果2.3、Semaphore没有设置上限值一、前言先说一下信号量与互斥量之间的关系。信号量的一个特殊的应用是互斥锁(互斥量),当信号量的最大数量是1时,它跟互斥锁(互斥量)的作用相同。以下摘自《python并行编程》中文版:二、生产者-消费者模型本次的代码目的如下:生成者producer每隔3秒时间同步一次消费者1(customer1)与消费者2(customer2)。消费者1(customer1)与消费者2(custo原创 2022-01-16 20:00:10 · 1392 阅读 · 0 评论 -
Python | threading03 - 使用条件对象,实现线程间的同步
文章目录一、前言二、生产者-消费者的模型2.1、代码2.2、运行2.3、wait( )方法会将互斥锁释放三、条件同步 - threading.Condition( )3.1、相关API3.2、acquire( )3.2、release( )3.3、wait( )3.4、notify(n=1)3.5、notify_all( )3.6、wait_for(predicate,timeout=None)一、前言上一篇博文学习了线程的互斥锁(Python | threading02 - 互斥锁解决多个线程之间随原创 2022-01-09 00:29:47 · 976 阅读 · 0 评论 -
Python | threading02 - 互斥锁解决多个线程之间随机调度,造成“线程不安全”的问题。
文章目录一、前言二、线程不安全的现象2.1、代码2.2、运行三、使用互斥锁解决线程不安全3.1、代码3.2、运行四、忘记释放互斥锁,造成死锁4.1、代码4.2、运行五、with语句拯救粗心的人类5.1、with语句在互斥锁上的使用5.3、运行的结果一、前言多线程的优势在于并发性,即可以同时运行多个任务。但是当线程需要使用共享数据时,也可能会由于数据不同步产生“错误情况”,这是由系统的线程调度具有一定的随机性造成的。由于线程之间的任务执行是CPU进行随机调度的,并且每个线程可能只执行了n条指令之原创 2022-01-03 01:23:39 · 3498 阅读 · 0 评论 -
Python | threading01 - 创建两个同时运行的子线程
文章目录一、前言二、创建两个同时运行的线程2.1、代码2.2、运行三、threading库的函数3.1、threading.Thread()3.2、threading.join()3.3、threading.start()四、最终的完整代码一、前言使用threading库,咱们的python程序就能从单线程串行变成多线程并发。python的threading库实现的“并发”是假的并发,即同一时刻只有一个线程在运行。据说python后来想将这个假的“并发”改为真的并发,但出现特别多的BUG,最后放弃了原创 2022-01-02 20:22:02 · 6450 阅读 · 0 评论 -
Python | Socket02 - 使用with语句建立一个TCP服务器(阻塞+单线程),将TCP客户端发过来的字符串原路返回
一、前言Python | Socket01 - 创建一个TCP服务器(阻塞+单线程),将TCP客户端发过来的字符串原路返回在上一篇博文完成TCP服务器简单的收发程序后,发现在Python上有更加简洁的方式来实现,使用with语法提供的上下文管理器。该程序的功能还是跟上一篇博文一样。二、代码import socketdef main(): # 使用with语句创建并管理一个套接字对象tcp_Server with socket.socket(socket.AF_INET,so原创 2021-12-17 18:43:14 · 1499 阅读 · 0 评论 -
Python | Socket01 - 创建一个TCP服务器(阻塞+单线程),将TCP客户端发过来的字符串原路返回
一、前言使用Python可以很简单地创建一个TCP服务器程序,该TCP服务器的程序目的是完成这个功能:TCP客户端发送一段字符串给TCP服务端,TCP服务端将字符串原路返回去。我是从该B站视频教程学习python的socket编程:https://www.bilibili.com/video/BV1Xx411R743?spm_id_from=333.999.0.0二、代码import socketdef main(): # 创建套接字tcp_Server_Socket t原创 2021-12-17 18:34:58 · 1654 阅读 · 0 评论