美文网首页
Python基础题型实战02-排队进行核酸检测

Python基础题型实战02-排队进行核酸检测

作者: Tony_Pm | 来源:发表于2022-08-31 13:37 被阅读0次

序言

只有当你下定决心改变,才会有接下来的改变。
学会慢慢地稳定情绪,保持住自己的节奏,一起好好的生活,努力去追求更加美好的事物。

需求

第二题需求.jpg

实战

思路流程图绘制

2流程图.jpg

代码原理实现

import time
import queue
import threading

def worker(i):
    global numbers_1,numbers_2
    numbers_1 = 0
    numbers_2 = 0
    while True:
        item = q.get()
        try:
            # 偶数
            if (item % 2) == 0:
                # time.sleep(2)
                if (numbers_1 % 2)==0:
                    print("小红医生(代号%s)将一个群众<%s>检测完了!" % (i, item))
                    # 做完后发出任务完成信号,然后继续下一个任务
                    q.task_done()
                else:
                    time.sleep(2.5)
                    q.task_done()
                numbers_1 += 1
            else:
                # 奇数
                # 小明是小红的2倍
                print("小明医生(代号%s)将一个群众<%s>检测完了!" % (i, item))
                numbers_2 += 1
                # 做完后发出任务完成信号,然后继续下一个任务
                q.task_done()

        except TypeError:
            print("今天没有群众需要检测了;医生(代号%s),可以休息了。" % i)
            if i==1:
                print('医生(代号%s)今天完成了的群众数量为:%s'% (i, numbers_1))
            elif i==2:
                print('医生(代号%s)今天完成了的群众数量为:'% i, numbers_2)
            # 做完后发出任务完成信号,然后继续下一个任务
            q.task_done()
            break



if __name__ == '__main__':
    num_of_threads = 2
    # 模拟核酸检测群众
    source = [i for i in range(1, 30)]

    # 创建一个FIFO队列对象,不设置上限
    q = queue.Queue()
    # 创建一个线程池
    threads = []
    # 创建指定个数的工作线程,并讲他们放到线程池threads中
    for i in range(1, num_of_threads+1):
        t = threading.Thread(target=worker, args=(i,))
        threads.append(t)
        t.start()

    # 将任务源里的任务逐个放入队列
    for item in source:
        # 每隔0.5秒准备下一个要检测的群众
        time.sleep(0.5)
        q.put(item)

    # 阻塞队列直到队列里的任务都完成了
    q.join()
    print("-----统计小红医生、小明医生工作完成的情况-----")
    # 停止线程
    for i in range(num_of_threads):
        q.put(None)
    for t in threads:
        t.join()


在这个浮躁的时代;竟然还有人能坚持篇篇原创;

如果本文对你学习有所帮助-可以点赞👍+ 关注!将持续更新更多新的文章。

支持原创。感谢!

相关文章

  • Python基础题型实战02-排队进行核酸检测

    序言 只有当你下定决心改变,才会有接下来的改变。学会慢慢地稳定情绪,保持住自己的节奏,一起好好的生活,努力去追求更...

  • 第三次核酸检测

    2021年1月20日 星期三 晴 今天村里进行了第三次核酸检测,居民都排队有序的排队进入了检测场地,等待核酸检测。...

  • 排队引发的纷争

    最近疫情又有肆虐的倾向,挺多城市都在进行核酸检测。由于地处偏远,我暂时游离于排队进行核酸检测之列。但不关心...

  • 去测核酸了

    收到短信通知,我们区域也要进行全员核酸检测了,需要在3天内完成。 马上响应政府号召,上午就去附近的核酸检测点,排队...

  • 核酸检测排队中

    早上五点半准时从家出发,准备前往最近的核酸检测点,不幸的是,车被堵在小区开不出去,只好选择步行前往! 大概六点到达...

  • 核酸检测排队有感

    秋阳如火炙天地 一碧晴空万里遥 抗疫争先皆有序 人间正道共除妖

  • 排队做核酸检测

    不知道这新冠疫情什么时候到头?从2020年开始,到现在做核酸检测的次数不少于200次了,每次不是捣喉咙眼,就是穿鼻...

  • 排队做核酸检测

    上班要提供48小时核酸证明,我是周五做的,周日必须要做一次。 早晨锻炼洗漱完毕,出来做检测。近日核酸点减少了,所以...

  • 核酸检测排队中

    西安疫情这两日又有了严重化的趋势,老板倡导大家在家办公,避免乘坐公共交通。 今天早上,我正在陪孩子吃饭。就被婆婆叫...

  • 第十三次全民核酸检测

    今天早上五点半我就起来了,因为我要早早地去排队做核酸检测。这是我参加的第十三次全民核酸检测。 排队...

网友评论

      本文标题:Python基础题型实战02-排队进行核酸检测

      本文链接:https://www.haomeiwen.com/subject/ltfogrtx.html