用继承Thread类的方法实现一个多线程程序,该程序先后启动三个线程,每个线程首先打印出一条线程创建信息,然后休眠一个随机时间,最后打印出线程结束信息退出。在一个线程中求100以内素数,求出后休眠一个随机时间。在另一线程中求100以内能被3整除的数,求出后休眠一个随机时间。输出数据时应有提示,指明哪个线程输出的数据。
时间: 2024-03-05 13:54:59 浏览: 13
好的,以下是实现该程序的示例代码:
```python
import threading
import random
class PrimeThread(threading.Thread):
def run(self):
print("PrimeThread created!")
primes = []
for i in range(2, 100):
for j in range(2, i):
if i % j == 0:
break
else:
primes.append(i)
print("PrimeThread: primes = ", primes)
time.sleep(random.randint(1, 3))
print("PrimeThread finished!")
class DivideThread(threading.Thread):
def run(self):
print("DivideThread created!")
divides = []
for i in range(1, 100):
if i % 3 == 0:
divides.append(i)
print("DivideThread: divides = ", divides)
time.sleep(random.randint(1, 3))
print("DivideThread finished!")
if __name__ == "__main__":
print("Main thread started!")
prime_thread = PrimeThread()
divide_thread = DivideThread()
prime_thread.start()
divide_thread.start()
prime_thread.join()
divide_thread.join()
print("Main thread finished!")
```
程序中定义了两个线程类`PrimeThread`和`DivideThread`,分别用来求100以内的质数和能被3整除的数。在每个线程中,都首先打印出一条线程创建信息,然后进行相应的计算,最后打印出线程结束信息。在计算完结果后,线程会随机休眠一段时间(1-3秒之间)。
在主线程中,创建了两个子线程并启动它们,然后等待两个子线程都执行完毕后再结束。在输出数据时,有明确的提示指明哪个线程输出的数据。
希望可以帮到你!