含两个独立运行main方法的应用是否为多进程?Java聊天应用疑问
多进程与Java多main方法运行问题解答
一、有两个独立main方法的应用算多进程吗?
- 不能直接认定为多进程应用,核心看运行方式:
- 如果只是把两个带main方法的类放在同一个项目里,但只启动其中一个main方法,那就是单进程运行。
- 只有当你分别启动这两个main方法(比如在IDE里分别运行两个类,或者在终端执行
java ClassA和java ClassB两条命令),此时才会生成两个独立的Java进程。但这是两次独立的运行行为,整个项目本身不算“多进程应用”,只是包含了可作为独立进程运行的代码集合。
二、Java Socket聊天应用的客户端与服务器各带main方法,运行时是一个还是两个进程?
- 只要你是分别启动客户端和服务器的main方法(比如先运行服务器类的main,再运行客户端类的main,或者用两条
java命令启动),它们就是两个完全独立的进程:- 每一条
java命令都会启动一个单独的JVM,各自拥有独立的内存空间、线程栈,彼此通过Socket网络通信,和两个无关进程没有本质区别。
- 每一条
- 要是你在同一个main方法里同时启动服务器和客户端的逻辑(比如在一个类的main中先启动服务器线程,再启动客户端线程),那才是单进程内的多线程运行。
内容的提问来源于stack exchange,提问作者Nishchay Bhutani
相关产品推荐
相关产品推荐

