Ipython输出在多线程情况下延迟

时间:2014-01-06 07:41:38

标签: multithreading ipython

以下代码给出了IPython的意外结果:

from multiprocessing.pool import ThreadPool
from threading import Lock

def checkinput(anwser):
    ilock.acquire()
    testVar = raw_input("Input {0}:".format(anwser))
    result='right' if anwser==testVar else 'wrong'
    print(result)
    ilock.release()
    return result

answerList=['a','b','c']

ilock=Lock()
pool=ThreadPool(2)
reslist=pool.map(checkinput, answerList)

IPython中的输出:

Input a:a
Input b:b
Input c:c
right
right
right

我期待这样的结果:

Input a:a
right
Input b:b
right
Input c:c
right

有可能吗?谢谢!

1 个答案:

答案 0 :(得分:0)

我通过更换“显示器”找到了解决方法。到'打印' 然而,这对我来说很奇怪,为了更好的解决方案而开放。

显示屏显示单引号:

Input a:a
'right'
Input b:b
'right'
Input c:c
'right'