#python #python-2.7 #python-multithreading
Вопрос:
from multiprocessing import Pool
from functools import partial
def run_test_function(x, fun_arg2, fun_arg3, fun_arg4):
# this is an example
for a in fun_arg2:
for b in fun_arg3:
print(x)
print(a)
print(b)
print(fun_arg4)
if __name__ == "__main__":
arg1 = 1,2,3,4
arg2 = "hello"
arg3 = "world"
arg4 = "!"
process_func = partial(run_test_function, fun_arg2=arg2, fun_arg3=arg3, fun_arg4=arg4)
my_pool = Pool(8)
my_pool.map(process_func, arg1)
Для этого кода я получаю вывод, как показано ниже:
~/test $ python2.7 so10.py
1
hello
world
!
2
hello
world
!
3
hello
world
!
4
hello
world
!
Проблема с этим кодом заключается в том, что когда этот вывод содержит длинную строку, в то время вывод непонятен. На данный момент я ожидаю, что результат будет таким :
1
hello
world
!
2
hello
world
!
3
hello
world
!
4
hello
world
!
Более того, после получения вывода мой интерфейс командной строки зависает, не могли бы вы, пожалуйста, дать некоторые данные по этому поводу?
Ответ №1:
Иногда это происходит, когда интерпретация CR/LF нарушается. Вы всегда можете поставить строку в конце своего кода :
import os
os.system('stty sane')