等待ExecutorService完成所有任务的最简单方法是什么?我的任务主要是计算,所以我只想运行大量的工作 - 每个核心一个.现在我的设置如下:
ExecutorService es = Executors.newFixedThreadPool(2);
for (DataTable singleTable : uniquePhrases) {
es.execute(new ComputeDTask(singleTable));
}
try{
es.wait();
}
catch (InterruptedException e){
e.printStackTrace();
}
Run Code Online (Sandbox Code Playgroud)
ComputeDTask实现runnable.这似乎正确执行任务,但代码崩溃wait()了IllegalMonitorStateException.这很奇怪,因为我玩了一些玩具示例,它似乎工作.
uniquePhrases包含数万个元素.我应该使用其他方法吗?我正在寻找尽可能简单的东西
当我的计算机崩溃时,我已经打开了eclipse - 现在我已经重新启动了,我的项目中出现了各种错误.看起来好像某些文件不包含最近进行的更改.我很确定我在坠机前保存了所有东西.有谁知道恢复的最佳方法?
我想检测其中包含非空白字符的字符串.现在我正在尝试:
!Pattern.matches("\\*\\S\\*", city)
Run Code Online (Sandbox Code Playgroud)
但它似乎没有奏效.有没有人有什么建议?我知道我可以修剪字符串并测试它是否等于空字符串,但我宁愿这样做
我有一个无环有向图。我想为每个顶点分配级别,以确保如果边(v1,v2)在图中,则level(v1)> level(v2)。每当(v1,v2)和(v3,v2)在图中时,如果level(v1)= level(v3),我也希望它。同样,可能的级别是离散的(也可以将它们取为自然数)。理想的情况是,每当(v1,v2)在图中并且没有从v1到v2的其他路径时,level(v1)= level(v2)+1,但是有时在其他约束条件下是不可能的-例如,考虑在五个顶点为边(a,b)(b,d)(d,e)(a,c)(c,e)的图中。
有谁知道一个体面的算法来解决这个问题?我的图很小(| V | <= 25左右),所以我不需要快速进行操作-简单性更为重要。
到目前为止,我的想法是只找到一个最小元素,将其分配为0级,找到所有父级,将它们分配为1级,并通过在适当的顶点上添加+0.5来解决矛盾,但这似乎很糟糕。
另外,我感觉删除所有“隐式”边缘可能会有所帮助(即,如果图形同时包含(v1,v2)和(v2,v3),则删除(v1,v3)。
我想使用 R 基础图形制作散点图,但如果需要的话我可以使用 ggplot。我有一个数据框,其中包含 x 和 y 坐标,以及其他两个协变量,称为 a 和 b。我希望每个点的大小随 a 变化(a 的高值 -> 较大的点),每个点的亮度/硬度随 b 变化(以便那些 b 足够低的点实际上是不可见的)。有人对如何做到这一点有任何建议吗?R 图形的文档看起来很全面,但是非常笼统和高级,我几乎不知道从哪里开始。感谢您的帮助