• 【Python_Process_Thread】Processing_Threading


    使用Thread类的构造方法创建线程Thread(target=func,args=(a,b)),其中线程t1、t2的参数分别为args=(1,5), args=(10,20)。线程t1运行结束等待5秒,再开始t2线程。其中函数func为

    func(a,b): for i in range(x, y):
    print(i)
    time.sleep(10) 分别运行线程t1,t2后,再查看这两个线程的状态
    1.使用Thread类的构造方法创建线程Thread(target=func,args=(a,b)),其中线程t1、t2的参数分别为args=(1,5),
    args=(10,20)。线程t1运行结束等待5秒,再开始t2线程。其中函数func为 func(a,b): for i in
    range(x, y):
    print(i)
    time.sleep(10) 分别运行线程t1,t2后,再查看这两个线程的状态

    2.使用Condition对象实现线程同步,模拟生产者与消费者问题。使用列表模拟物品池,生产者往里放置东西,而消费者从池中获取物品。物品池满时生产者等待,空时消费者等待。假设物品池里面能够容纳5个元素,每个元素都是1-1000之间的整数。请编写代码实现并查看运行结果。

    2.使用Condition对象实现线程同步,模拟生产者与消费者问题。使用列表模拟物品池,生产者往里放置东西,而消费者从池中获取物品。物品池满时生产者等待,空时消费者等待。假设物品池里面能够容纳5个元素,每个元素都是1-1000之间的整数。请编写代码实现并查看运行结果。

    消费者:

    最后:

    1. 实验结果

    分析: 两个线程进行同步运行,使用join()方法进行同步;它使得第一个线程运行完后,等待5s,在开始线程t2。
    运行线程t1后,就查看他的状态发现该线程已经被销毁了;同理,t2线程运行后,我们同样地使用is_alive()函数,观察该线程的状态,结果显示t2是活着的或者说它并未被销毁,因为它是在等待线程t1使用完共享资源后在同步运行的,因此它是活着的状态。而t1运行并执行完后进行堵塞,供t2使用资源。
    2. 实验结果
    分析: 模拟生产者和消费者的问题。
    生产者和消费者可同步使用物料池,是有顺序的,当物料池中为满时,生产者可一直生产;消费者也可从中取出。但是,当物料池满,生产者则需等待wait(),物料池有空隙使方可生产;同理,消费者在物料池为空时,也许等待,待物料池有物料时则可进行消费/取出。

    此次实验中,仅出现了生产者等待的情况。
    
    • 1
  • 相关阅读:
    Abbexa竞争性ELISA试剂盒丨Abbexa阿维菌素ELISA试剂盒
    GO 语言的并发模式你了解多少?
    计算机毕业论文选题python毕业设计题目推荐基于Python实现的租房数据分析和展示系统[包运行成功]
    ASP.NET Core - 入口文件
    python面试题——版本管理工具GIT(二)
    【Maven】单元测试、统计、覆盖率相关插件使用介绍
    Python装饰器:套层壳我变得更强了!
    spring boot整合常用redis客户端(Jedis、Lettuce、RedisTemplate、Redisson)常见场景解决方案
    渗透测试-Windows密码凭证获取
    为什么要用JMH?何时应该用?
  • 原文地址:https://blog.csdn.net/weixin_52372189/article/details/127972795