python启动3个线程打印递增的数字,控制线程1打印1,2,3,4,5(每行都打印线程名和一个数字),线程2打印6,7,8,9,10,线程3打印11,12,13,14,15;接下来再由线程1打印16,17,18,19,20,......依次类推,直到打印75。
时间: 2023-07-16 12:17:26 浏览: 169
下面是一个简单的实现,使用了 threading 和 time 模块来控制线程和打印的时间间隔:
```python
import threading
import time
# 打印数字的函数
def print_numbers(start, end):
for i in range(start, end+1):
print(threading.current_thread().name, i)
time.sleep(0.1)
# 创建三个线程并启动
thread1 = threading.Thread(target=print_numbers, args=(1,5))
thread2 = threading.Thread(target=print_numbers, args=(6,10))
thread3 = threading.Thread(target=print_numbers, args=(11,15))
thread1.start()
thread2.start()
thread3.start()
# 等待三个线程完成
thread1.join()
thread2.join()
thread3.join()
# 继续打印数字
for i in range(16, 76):
print(threading.current_thread().name, i)
time.sleep(0.1)
```
在这个例子中,我们首先定义了一个 print_numbers 函数,它接受两个参数,起始数字和结束数字。在函数内部,我们使用一个 for 循环来打印从起始数字到结束数字的所有数字,并且在每行输出前打印当前线程的名称。我们还使用了 time.sleep 函数来控制打印的速度。
接下来,我们创建了三个线程 thread1、thread2 和 thread3,并将它们分别设置为打印从 1 到 5、从 6 到 10 和从 11 到 15 的数字。我们使用 threading.Thread 函数来创建线程,并将 print_numbers 函数作为 target 参数传递给它。我们还使用了 args 参数来传递起始数字和结束数字。
在创建完线程后,我们使用 start 函数来启动它们。这将使每个线程开始执行 print_numbers 函数。
最后,我们使用 join 函数来等待三个线程完成。这将确保在继续打印数字之前,所有线程都已经完成了它们的任务。在等待三个线程完成后,我们使用一个 for 循环来打印从 16 到 75 的数字,并且在每行输出前打印当前线程的名称。我们还是使用 time.sleep 函数来控制打印的速度。
阅读全文