我已经实现了一个简单的B树,它将longs映射到整数.现在我想使用以下方法估计它的内存使用情况(仅适用于32位JVM):
class BTreeEntry {
int entrySize;
long keys[];
int values[];
BTreeEntry children[];
boolean isLeaf;
...
/** @return used bytes */
long capacity() {
long cap = keys.length * (8 + 4) + 3 * 12 + 4 + 1;
if (!isLeaf) {
cap += children.length * 4;
for (int i = 0; i < children.length; i++) {
if (children[i] != null)
cap += children[i].capacity();
}
}
return cap;
}
}
/** @return memory usage in MB */
public …Run Code Online (Sandbox Code Playgroud) 是否有可能在jsprit中处理作业(在本例中为服务)之间的关系?
例如,一个工作必须与一个或多个其他工作同时开始.或者一项工作不得在另一项工作结束前开始(正常顺序).
如果没有,你知道其他可以处理这种限制的java库吗?
谢谢!
我理解树遍历和实现背后的想法,但这是问题.为什么我们都需要它们?
现在我只知道在解析数学表达式时使用了前序遍历.从维基百科我也读到:
但这些例子相当含糊.任何人都可以更深入地描述这一点.特别是举例.
是否有可能(或有插件)在其中一个角落显示当前比例/缩放的图例?我不确定这是否是正确的英文术语所以这里是一个图像:

(google称之为id ='scalecontrol';))
当然它应该只显示较低的缩放级别,否则北部和南部区域的距离将太大.
我在docs或javadocs中找不到这个:我需要为每个线程创建一个客户端,还是由以下创建的客户端:
client = HazelcastClient.newHazelcastClient(cfg);
Run Code Online (Sandbox Code Playgroud)
线程安全?
重新启动服务通常是通过PID文件来实现的-即,将进程ID写入某个文件,并根据该数字停止命令将终止该进程(或在重新启动之前)。
当您考虑它(或者如果您不喜欢它,然后搜索)时,您会发现这是有问题的,因为每个PID都可以重用。想象一下,如果服务器完全重启,则在启动时调用“ ./your-script.sh start”(例如,crontab中的@reboot)。现在,your-script.sh将杀死任意 PID,因为它已在重新启动之前存储了实时的PID 。
我可以想象的一种解决方法是存储其他信息,以便您可以执行'ps -pid | grep',并且仅当此操作返回某些内容时,您才将其杀死。还是在可靠性和/或简单性方面有更好的选择?
#!/bin/bash
function start() {
nohub java -jar somejar.jar >> file.log 2>&1 &
PID=$!
# one could even store the "ps -$PID" information but this makes the
# killing too specific e.g. if some arguments will be added or similar
echo "$PID somejar.jar" > $PID_FILE
}
function stop() {
if [[ -f "$PID_FILE" ]]; then
PID=$(cut -f1 -d' ' $PID_FILE)
# now get the second information …Run Code Online (Sandbox Code Playgroud)