- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我根据看到的答案提出了一个问题。它使用线程池来管理线程,但每个线程打印'Going to sleep... i'
, sleep i
时间然后打印'Slept.. '
。我的问题是为什么它打印 'Going to sleep...Going to sleep...Going to sleep...'
?它不会在换行符上打印它们,除非我明确地将 \n
添加到字符串的末尾。这是我没有 \n
的输出。`
Going to sleep...Going to sleep...Going to sleep...
Slept ..0
Going to sleep...
Slept ..1
Going to sleep...
Slept ..2
Slept ..3
Slept ..4
done!!`
这是我换行的输出
Going to sleep...
Going to sleep...
Going to sleep...
Slept ..0
Going to sleep...
Slept ..1
Going to sleep...
Slept ..2
Slept ..3
Slept ..4
done!!
Going to sleep...
和第一个 Slept..
之间的空格对我来说也很奇怪。
这是代码
import time
from multiprocessing.dummy import Pool
def run(i):
print "Going to sleep...\n"
time.sleep(i)
print ("Slept .." + str(i))
p = Pool(3)
res = [p.apply_async(run, (i,)) for i in range(5)]
p.close()
p.join()
print "done!!"
最佳答案
print
语句首先将您的文本写入 sys.stdout
,一旦写入,一个单独的字节码将处理写入 \n
换行符:
>>> import dis
>>> dis.dis(compile('print "Hello world!"', '<demo>', 'exec'))
1 0 LOAD_CONST 0 ('Hello world!')
3 PRINT_ITEM
4 PRINT_NEWLINE
5 LOAD_CONST 1 (None)
8 RETURN_VALUE
请注意反汇编中单独的 PRINT_ITEM
和 PRINT_NEWLINE
字节码。
在多线程环境中使用 print
时,您最终可能会在这两个不同的步骤之间切换线程;线程 1、2 和 3 都可以先写入打印的消息,然后切换线程,只有在另一个线程写入消息后才写入换行符。
通过将 \n
添加到您的消息中,您可以确保同时写入换行符。在这种情况下,您实际上是在向sys.stdout
写入两个 换行符。
关于python - 打印跳过换行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31142566/
在 Vaadin 7.0,显示时JavaBean Table 中的数据与 BeanContainer ,用新数据刷新表的正确方法是什么? 最佳答案 该表通过监听器监视表项的属性。如果您通过表的 Ite
首先,我使用的是带有 Axis2 1.6.2 的 eclipse,我正在 tomcat 6 上部署我创建的 Web 服务。Web 服务是在 eclipse 中通过自上而下的方法创建的。 我被要求使对我
我已将 Rails 3.1.1 应用程序升级到 Rails 3.1.3,现在,对于每个请求,它仅响应错误数量的参数(3 for 1)。不幸的是,它没有说明错误在哪里,并且应用程序跟踪为空。我认为存在一
我是一名优秀的程序员,十分优秀!