当使用 Java 命令运行 .class 文件的时候,就相当于启动了一个 JVM 进程,如何理解?

Python013

当使用 Java 命令运行 .class 文件的时候,就相当于启动了一个 JVM 进程,如何理解?,第1张

进程是操作系统资源管理的基本单位,运行.class文件和打开一个应用软件(当然有些软件可能对于多个进程)是类似的,都会创建一个操作系统进程。

你提到的"运行.class启动的JVM进程",实际上这个就是操作系统创建的进程;这个进程需要一定的资源(CPU、内存、磁盘等)来完成一定的事情,进程之间不会相互干扰,所以每个软件都需要操作系统分配进程。

至于你说的"JVM中有哪些进程",我理解应该是"JVM中有哪些"线程;建议去了解一下进程和线程之间的区别。我个人理解进程和线程的核心区别是:进程是资源管理、分配的基本单位,这个类比于公司;而线程是操作系统调度的基本单位,类比于公司员工。上级部门在分配资源的时候肯定是分配名额到企业,但是分配资源具体怎么使用,则需要由企业的员工来完成。

一般JVM中的线程由用户创建,但是JVM也会默认创建一些线程,比如垃圾回收线程。

可以这样解决:

首先,把你启动程序的命令编辑到一个bat批处理文件中;

然后,你的java类里面需要的核心代码是:

Runtime.getRuntime().exec("cmd.exe /c start C:\\clean.bat(这个文件改成你做好的批处理文件)")

当然,你的程序中需要判断现在是不是晚上六点,这个就不多说了。

可以使用Executors.newSingleThreadExecutor()方法来创建一个ExecutorService,然后使用submit()方法提交任务,并使用Future.get(long timeout, TimeUnit unit)方法来获取任务的结果。如果在指定的时间内任务没有完成,则会抛出TimeoutException异常。因此,可以使用这种方法来在启动子进程的同时启动timeout。