我正在尝试使用ProcessBuilder类通过Java启动外部进程,这很有用.目前正在使用命令运行:
new ProcessBuilder("java", "-jar", jarfile, args);
Run Code Online (Sandbox Code Playgroud)
我想做的就是这样,但要以低优先级开始这个过程.我的程序目前只在Windows上运行,因此我可以使用特定于窗口的解决方案.一些研究建议我使用"start"命令,但是当我尝试从Java执行此操作时,它会给出一个异常,说它是一个无法识别的命令(同样的命令可以从cmd.exe运行).
有没有人知道如何从Java启动进程(特定于Windows,如果需要),具有belownormal优先级?
>>> 3 > 2 == True
False #say what?
>>> (3 > 2) == True
True
>>> 3 > (2 == True)
True
>>> 3 > 1 == True
True
>>> 3 > False
True
Run Code Online (Sandbox Code Playgroud)
什么是Python在其遗忘的隐藏逻辑中做出的第一个声明False,而其余的是True什么?
我有一个设计选择:我是否创建了一个包含对象的数组,每个包含一些不同的值,或者我创建一个包含几个不同值的数组的对象?
选项1:
Node[][] nodes;
class Node{
double val1;
double val2;
}
Run Code Online (Sandbox Code Playgroud)
选项2:
Node[] nodes;
class Node{
double[] val1;
double[] val2;
}
Run Code Online (Sandbox Code Playgroud)
我的直觉说选项2效率更高只是因为会有更少的对象,因此开销更少,但是double []会同样昂贵吗?
在一个相关的问题中,我们使用ProcessBuilder探索了使用依赖于操作系统的命令以低优先级启动外部进程.我还发现,如果父进程的优先级较低,那么它生成的所有进程都将以低优先级启动.所以我的新问题是关于以低优先级启动java文件(通过双击Windows中的可执行jar运行)或在运行期间以编程方式更改其优先级.我尝试改变线程优先级,但这对Windows进程优先级没有影响.
我尝试了以下操作,但它不会更改任务管理器中的进程优先级
public class hello{
public hello(){
try{
Thread.currentThread().setPriority(1);
Thread.sleep(10000);
}catch(Exception e){e.printStackTrace();}
}
}
Run Code Online (Sandbox Code Playgroud)
我能想到的唯一另一件事是使用批处理文件运行程序,但我宁愿把它留在家里也可以这么说.那么有谁知道基于java的方式来改变当前的进程优先级?理想情况下,能够在程序运行时更改进程的优先级以响应用户输入,这将是很好的.