大家好,今天小编关注到一个比较有意思的话题,就是关于java语言process的问题,于是小编就整理了2个相关介绍Java语言process的解答,让我们一起看看吧。
JAVA进程如何创建?有哪些技巧?
创建线程的方式:
1.继承Thread类,并复写run方法,创建该类对象,调用start方法开启线程。
2.实现Runnable接口,复写run方法,创建Thread类对象,将Runnable子类对象传递给Thread类对象。调用start方法开启线程。
第二种方式好,将线程对象和线程任务对象分离开。降低了耦合性,利于维护
3.创建FutureTask对象,创建Callable子类对象,复写call(相当于run)方法,将其传递给FutureTask对象(相当于一个Runnable)。
在j***a中创建进程有两种形式:
1.使用Runtime的exec(String cmdarray[])方法创建进程
代码如下:
String [] cmd={"cmd","/c","start dir"};
Runtime rt = Runtime.getRuntime();
Process proc=rt.exec(cmd)
2.使用ProcessBuilder的start()方法创建进程
代码如下:
ProcessBuilder pb=new ProcessBuilder("cmd","/C","start","netstat");
Process ps=pb.start();
在J***a中,可以通过两种方式来创建进程,总共涉及到5个主要的类。
第一种方式是通过Runtime.exec()方法来创建一个进程,第二种方法是通过ProcessBuilder的start方法来创建进程。
在JDK中,与进程有直接关系的类为J***a.lang.Process,它是一个抽象类。在JDK中也提供了一个实现该抽象类的ProcessImpl类,如果用户创建了一个进程,那么肯定会伴随着一个新的ProcessImpl实例。同时和进程创建恰当相关的还有还有ProcessBuilder。
下面介绍几种创建进程的方法。
ProcessBuilder.start()方法
Processclass是一个抽象类,在它里面主要有几个抽象方法,如下:
ProcessBuilder是一个最终类,它有两个构造器,构造器中传递的是需要创建的进程的命令参数
ProcessBuilder.start方法来建立一个本地的进程。如果希望在新创建的进程中使用当前的目录和环境变量,则不需要任何配置,直接将命令行和参数设置为ProcessBuilder中,然后调用start方法,就获得进步的引用。
也可以先配置环境变量和工作目录,然后创建进程。
J***a如何控制进程执行时间?
任何语言都无法达到控制进程时间的目的!但可以控制到指定范围!通过对系统性能的优化,对操作系统CPU的性能评估,文件系统的性能评估,或许可以达到控制进程时间在某个范围!
语言方面可以做到捕获CPU信息,磁盘信息来控制线程数量达到控制进程所耗时间的目的!若CPU为单核心关闭多线程操作可以节省时间,没有线程之间的调度就会节省很多时间。多核心CPU则使用多线程来指定任务,会大大提高CPU利用率并节省时间!这种在线程方面的优化可以保证进程时间控制在指定范围!
系统所在的进程可以分为两种类型:一种是CPU密集型,如上所述便是CPU密集型,线程多用于计算,因此,线程所耗费的时间是在CPU运算上,若要控制时间,必须要考虑CPU的性能!第二种是I/O密集型,即系统中需要大量的InputRead和OutputWrite,CPU使用率并不高,大多是对磁盘读写,Socket的读写操作,J***A中可以***用多线程/NIO/高并发的方式来处理IO密集型的任务,达到缩短时间的目的!
到此,以上就是小编对于j***a语言process的问题就介绍到这了,希望介绍关于j***a语言process的2点解答对大家有用。