x=True
def stupid():
x=False
stupid()
print x
Run Code Online (Sandbox Code Playgroud) 有人知道开源BufferedIterator,在后台线程上急切地获取接下来的N个元素吗?这是一个实现从TechRepublic的文章,但我认为它并没有被彻底的测试.
迭代器 .buffer(Iterator toBuffer,int bufferSize)对Guava来说是一个很好的补充,有没有被考虑过?
我现在有过几次同样的需求,并想就构建解决方案的正确方法获得其他想法。需要的是对多个线程上的多个元素执行一些操作,而无需一次将所有元素都放在内存中,只需要计算中的元素。就像,Iterables.partition是不够的,因为它预先将所有元素都放入内存中。
用代码表达,我想写一个 BulkCalc2,它和 BulkCalc1 做同样的事情,只是并行。下面的示例代码说明了我的最佳尝试。我不满意,因为它又大又丑,但它似乎实现了我的目标,即在工作完成之前保持线程的高度利用,在计算过程中传播任何异常,并且一次在内存中不必有超过numThreads 个 BigThing实例.
我会接受以最简洁的方式满足既定目标的答案,无论是改进 BulkCalc2 的方法还是完全不同的解决方案。
interface BigThing {
int getId();
String getString();
}
class Calc {
// somewhat expensive computation
double calc(BigThing bigThing) {
Random r = new Random(bigThing.getString().hashCode());
double d = 0;
for (int i = 0; i < 100000; i++) {
d += r.nextDouble();
}
return d;
}
}
class BulkCalc1 {
final Calc calc;
public BulkCalc1(Calc calc) {
this.calc = calc;
}
public TreeMap<Integer, …Run Code Online (Sandbox Code Playgroud) OffsetDate表示具有区域偏移量的日期。我不明白这个类的用途,证明它存在的主要用例是什么?
我想编写一个可以在运行时创建可执行jar的Java应用程序.我想做的"hello world"是编写一个Java app X,在运行时生成一个可执行的jar Y,在运行时打印hello world(或者在Y运行之前可能还有另一个字符串未知).
我怎么能做到这一点?