谁能讲讲“JAVA线程机制”怎么回事? java线程是基于操作系统的吗? 还是基于虚拟机的?比如一个不支持多线程的操作系统环境下,可以使用虚拟机吗?另外,JAVA多线程是可以分布运行在同一个虚拟机上还是不同的虚拟机上? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 不好意思,上面一句话说错了“比如一个不支持多线程的操作系统环境下,可以使用虚拟机吗?”应该是“比如一个不支持多线程的操作系统环境下,可以使用JAVA多线程吗?” 如果操作系统不支持多线程,JVM会利用多进程模拟的只要在这个操作系统上有JVM,那么你可以认为它已经实现了,多线程对你已经是透明的了 基于虚拟机的系统不支持应该也可以使用在不同的虚拟机上应该是很难实现的下面是图示,不好意思不能贴图,只好自己画了virtual processes processes processesuser | | |mode | | |virtual kernel 1 kernel 2 kernel 3monitor \ /mode \ /monitor virtual machine softwaremode hardware 谢谢,真是个热心人不过怎么少了操作系统层,还多了那么多kernel,上面怎么还有那么多进程,一个虚拟机不就是一个进程了吗?? 你没搞清楚进程和线程啊...他们是2个东西进程就是你在 任务管理器 里能看到的那些当前运行的.exe列表同时,每个进程又可以启动属于它自己的很多线程那QQ打个比方 运行QQ的时候,在系统里会有一个QQ进程然后QQ的主进程会启动负责不同工作的线程,比如TCP传输的网络线程,GUI显示的图像线程,监视键盘的监视线程等等... 楼上那张图是不是processes应该改为thread更合理一点。。 我也来学习下,明白了Java多线程是基于虚拟机的。 java代码怎么改? hibernate 调用save()方法时异常 什么原因啊 一个FocusListener的问题 要求,两个Date类型的的变量,如果它们的年月日想等,就算是想等,忽略时间,怎么半?转变成字符处吗? NullPointerException抛错! 求教关于数组的问题,急 -1>>32还是-1, -1>>>32为什么还是-1? 请教java如何实现一个优先队列呢 ?想用Java写个像CHM样程序,请给点思路? 我连接ACCESS数据库出现了问题? NetBeans里修改生成代码问题? 请问怎样生成JAVA的exe文件?
应该是“比如一个不支持多线程的操作系统环境下,可以使用JAVA多线程吗?”
系统不支持应该也可以使用
在不同的虚拟机上应该是很难实现的下面是图示,不好意思不能贴图,只好自己画了virtual processes processes processes
user | | |
mode | | |
virtual kernel 1 kernel 2 kernel 3
monitor \ /
mode \ /
monitor virtual machine software
mode hardware
不过怎么少了操作系统层,还多了那么多kernel,上面怎么还有那么多进程,一个虚拟机不就是一个进程了吗??
他们是2个东西
进程就是你在 任务管理器 里能看到的那些当前运行的.exe列表同时,每个进程又可以启动属于它自己的很多线程那QQ打个比方
运行QQ的时候,在系统里会有一个QQ进程
然后QQ的主进程会启动负责不同工作的线程,比如TCP传输的网络线程,GUI显示的图像线程,监视键盘的监视线程等等...