Thread创建综合输入3个整数a、b、c分别计算其阶乘并输出。特别的,要求按输入顺序的倒序进行输出。而且必须在主线程结束之后进行输出。
时间: 2024-03-15 14:44:55 浏览: 182
可以参考以下代码实现:
```python
import threading
class FactorialThread(threading.Thread):
def __init__(self, num):
threading.Thread.__init__(self)
self.num = num
self.result = 1
def run(self):
for i in range(1, self.num + 1):
self.result *= i
a = int(input("请输入第一个整数:"))
b = int(input("请输入第二个整数:"))
c = int(input("请输入第三个整数:"))
t1 = FactorialThread(a)
t2 = FactorialThread(b)
t3 = FactorialThread(c)
t1.start()
t2.start()
t3.start()
t1.join()
t2.join()
t3.join()
print(t3.result)
print(t2.result)
print(t1.result)
```
在这段代码中,我们定义了一个 `FactorialThread` 类,用于计算给定整数的阶乘。在 `run` 方法中,我们使用一个循环计算阶乘,并将结果保存在 `result` 属性中。在主程序中,我们先读取 3 个整数,并分别创建对应的线程。然后启动这 3 个线程,并等待它们结束。最后按照输入顺序的倒序输出每个整数的阶乘。由于 `join` 方法会阻塞主线程,所以输出操作会在 3 个线程结束后进行。
阅读全文