日期:2014-05-20  浏览次数:20803 次

谁能讲讲“JAVA线程机制”怎么回事?
java线程是基于操作系统的吗?   还是基于虚拟机的?
比如一个不支持多线程的操作系统环境下,可以使用虚拟机吗?
另外,JAVA多线程是可以分布运行在同一个虚拟机上还是不同的虚拟机上?


------解决方案--------------------
如果操作系统不支持多线程,JVM会利用多进程模拟的

只要在这个操作系统上有JVM,那么你可以认为它已经实现了,多线程对你已经是透明的了
------解决方案--------------------
基于虚拟机的
系统不支持应该也可以使用
在不同的虚拟机上应该是很难实现的

下面是图示,不好意思不能贴图,只好自己画了

virtual processes processes processes
user | | |
mode | | |
virtual kernel 1 kernel 2 kernel 3
monitor \ /
mode \ /
monitor virtual machine software
mode hardware
------解决方案--------------------
你没搞清楚进程和线程啊...
他们是2个东西
进程就是你在 任务管理器 里能看到的那些当前运行的.exe列表

同时,每个进程又可以启动属于它自己的很多线程

那QQ打个比方
运行QQ的时候,在系统里会有一个QQ进程
然后QQ的主进程会启动负责不同工作的线程,比如TCP传输的网络线程,GUI显示的图像线程,监视键盘的监视线程等等...