谁能讲讲“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显示的图像线程,监视键盘的监视线程等等...