【发布时间】:2017-08-07 07:57:05
【问题描述】:
假设您有 4 个数字,您需要使用 Python 中的多线程打印从 1 到 100 的所有数字的乘法表。我想出的代码是
from threading import Thread
def multable(r, number):
for i in range(1,101):
mul = number*i
print "\n%d x %d = %d" %(number, i, mul)
def Main():
t1 = Thread(target = multable, args = (1, 2))
t2 = Thread(target = multable, args = (1, 3))
t3 = Thread(target = multable, args = (1, 4))
t4 = Thread(target = multable, args = (1, 4))
t1.start()
t2.start()
t3.start()
t4.start()
if __name__ == '__main__':
Main()
部分输出 -
4 x 60 = 240
4 x 61 = 244
4 x 62 = 248
3 x 48 = 144
2 x 78 = 156
4 x 63 = 252
3 x 49 = 147
3 x 50 = 150
2 x 79 = 158
3 x 51 = 153
4 x 64 = 256
我的问题是 -
- 为什么会出现不均匀的间距,因为我认为打印语句中的
\n应该在两个输出之间只有一个行间距? - 为什么我不能只在线程中传递一个变量作为参数,这样做的错误要求我给出一个迭代,所以我给出了一个无用的值?
- 在四核 CPU 中,如何编辑此程序以利用所有四个 CPU,每个 CPU 用于一个数字/线程。不考虑输出顺序?
【问题讨论】:
标签: python multithreading python-2.7 multicore