java 没有多进程? 大家畅所欲言呀!

xiyoulaoyuanjia 2012-07-10 10:24:36
rt!谢谢了!
...全文
809 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
csdpz 2012-07-11
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 的回复:]
为什么一个虚拟机里面跑的是多个线程? vm 还是vbox?

引用 7 楼 的回复:

引用 6 楼 的回复:
如何把jvm 理解成虚拟机的话 那么为什么不能在一个虚拟机里跑多个进程呢? 是效率还是实现复杂呢?
何为进程间调用呢? 应该是直接跑其它程序吧!对于 exec而言!

jvm 本身就是虚拟机的概念,不用理解成虚拟机。一个虚拟机里跑的是多个线程。其他的不会。求ls解答
[/Quote]
Java多线程啊,一个java进程可以有跑多个Java线程.... vm和vbox是啥啊 不懂
xiyoulaoyuanjia 2012-07-11
  • 打赏
  • 举报
回复
为什么一个虚拟机里面跑的是多个线程? vm 还是vbox?
[Quote=引用 7 楼 的回复:]

引用 6 楼 的回复:
如何把jvm 理解成虚拟机的话 那么为什么不能在一个虚拟机里跑多个进程呢? 是效率还是实现复杂呢?
何为进程间调用呢? 应该是直接跑其它程序吧!对于 exec而言!

jvm 本身就是虚拟机的概念,不用理解成虚拟机。一个虚拟机里跑的是多个线程。其他的不会。求ls解答
[/Quote]
sffx123 2012-07-11
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 的回复:]

java实现的是一种多线程的机制,就java本身概念而言(虚拟机规范),线程级别的。
但是java到底是多进程的还是多线程的,根本由操作系统本身来决定,并不由java来决定,因为进程与线程的这种机制本身就只取决于操作系统,而不取决于高级语言语言,对于内存分配以及cpu时间片段的分配利用,是由更低级的比操作系统低的语言来实现。
对于一些老式的unix操作系统,它是没有线程概念存在的,它的异步协……
[/Quote]x学习了
蘑菇頭 2012-07-11
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 的回复:]

java实现的是一种多线程的机制,就java本身概念而言(虚拟机规范),线程级别的。
但是java到底是多进程的还是多线程的,根本由操作系统本身来决定,并不由java来决定,因为进程与线程的这种机制本身就只取决于操作系统,而不取决于高级语言语言,对于内存分配以及cpu时间片段的分配利用,是由更低级的比操作系统低的语言来实现。
对于一些老式的unix操作系统,它是没有线程概念存在的,它的异步协……
[/Quote]

厉害……学习了……
树成 2012-07-11
  • 打赏
  • 举报
回复
java实现的是一种多线程的机制,就java本身概念而言(虚拟机规范),线程级别的。
但是java到底是多进程的还是多线程的,根本由操作系统本身来决定,并不由java来决定,因为进程与线程的这种机制本身就只取决于操作系统,而不取决于高级语言语言,对于内存分配以及cpu时间片段的分配利用,是由更低级的比操作系统低的语言来实现。
对于一些老式的unix操作系统,它是没有线程概念存在的,它的异步协作方式就是多进程共享内存的方式来完成的,因此,在这种操作系统上,根本就不存在线程,java也没法实现线程,因此java就是多进程的应用程序,由多个java进程来完成协作。然而在windows上面,进程间的内存空间是互相独立的,数据不能直接共享,它的异步协作方式由进程中的线程来完成,这些线程共享进程所属内存来完成异步协作,所以java在这种操作系统上,表现的就是单进程多线程的方式。
就进程与线程的概念,并不是java本身一个概念,它们是操作系统级别的概念,java只是将操作系统的这种方式进行了包装,而并非自己去实现一套cpu时钟与内存访问机制,java本身是跳不出操作系统层面的。
csdpz 2012-07-10
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 的回复:]
如何把jvm 理解成虚拟机的话 那么为什么不能在一个虚拟机里跑多个进程呢? 是效率还是实现复杂呢?
何为进程间调用呢? 应该是直接跑其它程序吧!对于 exec而言!
[/Quote]
jvm 本身就是虚拟机的概念,不用理解成虚拟机。一个虚拟机里跑的是多个线程。其他的不会。求ls解答
xiyoulaoyuanjia 2012-07-10
  • 打赏
  • 举报
回复
如何把jvm 理解成虚拟机的话 那么为什么不能在一个虚拟机里跑多个进程呢? 是效率还是实现复杂呢?
何为进程间调用呢? 应该是直接跑其它程序吧!对于 exec而言!
csdpz 2012-07-10
  • 打赏
  • 举报
回复
进程 这个概念............

应该是1个虚拟机代表一个java进程。在同一个应用程序中起多个虚拟机,好像是听说过,真的是好像。所以我觉得有。
  • 打赏
  • 举报
回复
Runtime#exec 是 Java API 中唯一一个进程间调用方法。
RDroid 2012-07-10
  • 打赏
  • 举报
回复
一个jvm运行在一个进程里,java代码里可以通过Runtime.exec来启动另外一个进程

多进程间,各自的jvm是独立的
  • 打赏
  • 举报
回复
是的,Java 是单进程的!

62,636

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧