j***a语言发展进程,j***a语言发展历程

kodinid 6 0

大家好,今天小编关注到一个比较意思的话题,就是关于java语言发展进程问题,于是小编就整理了3个相关介绍Java语言发展进程的解答,让我们一起看看吧。

  1. java如何实现进程间的通信?
  2. JAVA基础:java如何判断某个进程是否在启用?
  3. Java进程如何创建?有哪些技巧?

JAVA如何实现进程间的通信

客户端与客户端不能直接通信吧,客户端需要服务器端建立tcp链接。所以两个客户端需要通过服务连接,你可以建立两个客户端到服务器的长链接,通过服务器转发一个客户端对另一个客户端的信息

websocket这方面比较方便,非常适合用于聊天室的开发。还可以根据原始邮件的方式,客户端1将信息发给服务器并且存储到一个数据库中,等到客户端2链接服务器时,服务器判断数据库中是否有信息,有的话推送给客户端2,这种方式是非及时通信的。

java语言发展进程,java语言发展历程-第1张图片-安济编程网
图片来源网络,侵删)

websocket是即时通信的应用协议,传输层其实就是tcp长链接。

J***A基础:j***a如何判断某个进程是否在启用?

这个实现起来非常简单,只需要遍历当前的进程列表如果包含有我们查询的某个进程关键字,则说明这个进程正在启用或运行,否则,没有运行,下面我简单介绍一下实现过程,感兴趣的朋友可以尝试一下,Windows环境Linux环境基本类似:

Windows

(图片来源网络,侵删)

J***a测试代码如下,基本思想先运行Tasklist命令,获取当前系统运行的所有进程,然后循环读取每个进程,与我们所要搜索的进程关键字进行匹配,如果包含有进程关键字(indexOf函数返回值就不会是-1),则说明这个进程正在运行,否则,进程没有运行:

程序运行截图如下,这里我对进程名进行了红色标记,如下,可以看出,当前搜索的chrome进程正在运行:

Linux

java语言发展进程,java语言发展历程-第3张图片-安济编程网
(图片来源网络,侵删)

这里的J***a代码基本和前面的Windows平台类似,唯一的区别就是运行“ps -aux”命令获取当前系统的所有进程,然后循环遍历进程列表,如果匹配到进程的关键字,则说明搜索的进程正在运行,否则,没有运行:

程序运行截图如下,这里我也用颜色对进程名进行了标记,如下,可以看出,当前的vsftpd进程正在运行:

J***a进程如何创建?有哪些技巧?

在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();

在JDK中,与进程有直接关系的类为J***a.lang.Process,它是一个抽象类。在JDK中也提供了一个实现该抽象类的ProcessImpl类,如果用户创建了一个进程,那么肯定会伴随着一个新的ProcessImpl实例。同时和进程创建恰当相关的还有还有ProcessBuilder。

下面介绍几种创建进程的方法。

ProcessBuilder.start()方法

Processclass是一个抽象类,在它里面主要有几个抽象方法,如下:

ProcessBuilder是一个最终类,它有两个构造器构造器中传递的是需要创建的进程的命令参数

ProcessBuilder.start方法来建立一个本地的进程。如果希望在新创建的进程中使用当前的目录和环境变量,则不需要任何配置,直接将命令行和参数设置为ProcessBuilder中,然后调用start方法,就获得进步的引用

也可以先配置环境变量和工作目录,然后创建进程。

到此,以上就是小编对于j***a语言发展进程的问题就介绍到这了,希望介绍关于j***a语言发展进程的3点解答对大家有用。

标签: 进程 运行 j***a