-
java n 个线程顺序打印 n 个字符的通用解决方案
2016-10-27 15:46总算明白了,你想让每个线程按照创建顺序打印字符。。
我拿 python 写了一遍,然后执行就卡住了。。
from threading import Lock, Thread, Condition import sys cur = 'A' l = Lock() conds = [] def thread_work(i, c): global cur, l, conds with l: if cur != c: conds[i].wait() print cur cur = chr(ord(cur) + 1) if i + 1 != len(conds): conds[i + 1].notify() def main(): global cur, l, conds num = 5 for i in xrange(num): conds.append(Condition(l)) for i in xrange(num): c = chr(ord(cur) + i) Thread(target=thread_work, args=(i, c)).start() main()
-
java n 个线程顺序打印 n 个字符的通用解决方案
2016-10-27 15:15你的 Condition 也是串行。
不串行只有一个办法,使用 Java 里自带的 AtomicInteger。
-
GO 比 JAVA 好在哪?
2016-10-27 15:13效率也分计算性能和吞吐量,C#的计算性能的确不如 C++,但是如果像服务器这种不怎么依赖 CPU,而是重度依赖 IO 的场景,你算得再快也得卡在 IO 上面。