请问进程与Java线程的区别

intelask 2006-06-19 04:09:38
请问进程与Java线程的区别
...全文
670 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
garfilone 2006-08-10
  • 打赏
  • 举报
回复
看看操作系统的书籍,再看看Java的书你就明白了
BlueTrees 2006-08-10
  • 打赏
  • 举报
回复
Java是跨平台的,这为他使用多线程造成了很大的障碍,并不是所有的操作系统都支持线程这种概念,在Unix(BSD等等)操作系统中是没有线程这种概念的,内存和CPU调度是绑定的,所以它只有进程的概念。在Windows中把内存管理和CPU调度分离,充分实现了线程。

Java为了跨平台,所以它不可能使用仅在Windows上存在的线程,他的线程应当是模拟的,类似于windows中纤程的概念,纤程本来就是为Unix程序移植到Windows平台提供方便的,他需要程序主动释放CPU控制权,否则进程中的其他纤程是无法获得调度的,这和Windows线程的最大区别,windows线程是强迫调度的。Java的线程类似于windows的纤程。

进程在全部的操作系统中的解释都是一样的,它主要是起到内存隔离和CPU调度的作用,一般来说,还有用户的安全令牌、输入输出映射也是和进程关联的。在早期的Unix中,可能进程还和用户的一次登录相关联,进程可能关联一个远程终端,但是现在这些都成为历史了。在Windows中进程不再具有CPU调度的特性,这个职能被线程取代,但是,进程必须拥有一个线程,当进程的线程全部结束后,进城也就退出了,从这点来说,进城仍然和CPU调度关联的。
myan 2006-08-10
  • 打赏
  • 举报
回复
Java的线程是OS级别上的Native线程,所以你的问题是“进城与线程的区别”。这个问题看一般操作系统的书就知道了。
cxxylce0 2006-08-09
  • 打赏
  • 举报
回复
up
tlty 2006-06-21
  • 打赏
  • 举报
回复
UP
大步 2006-06-20
  • 打赏
  • 举报
回复
up
winne_ll 2006-06-20
  • 打赏
  • 举报
回复
UP

566

社区成员

发帖
与我相关
我的任务
社区描述
英特尔® 边缘计算,聚焦于边缘计算、AI、IoT等领域,为开发者提供丰富的开发资源、创新技术、解决方案与行业活动。
社区管理员
  • 英特尔技术社区
  • shere_lin
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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