第1关:线程同步之报数
任务描述
排队报数是现实生活中很常见的一种统计人数的手段。它需要队列中的每个人互相协作,后一名比前一名报的数字多一,最后一名报的数字即为队列的总人数。
本关利用线程模拟队列中的个人,最终实现一个队列报数的过程。
相关知识
多线程是为了充分利用硬件资源,来提高任务处理速度和效率的技术。将任务拆分成互相协作的多个线程,同时运行。那么属于同一个任务的多个线程之间,就需要有交互和同步。
例如,字处理软件使用一个线程,来接受用户键盘输入,而使用另一个后台线程,来进行拼写检查以及字数统计等功能。
Thread对象
Thread类支持使用两种方法,来创建线程:
为构造函数,传递一个可调用对象;
继承 Thread 类,并在派生类中重写__init__()方法和run()方法。
编程要求
本关的编程任务是,补全右侧编辑器中Begin至End区间的代码,具体要求如下:
本关将根据测试输入创建多个线程,每个线程相当于队列中的一个人,他们报的数用全局变量x存储;
学员需要编写run()方法,使得每个线程将自己该报的数输出;
注意在输出语句之前,加入time.sleep(0.1)防止输出过快造成顺序混乱的情况。
# -*- coding