当前位置: 技术问答>linux和unix
java多线程,linux操作系统,双cpu服务器,问问稍微高级点的问题
来源: 互联网 发布时间:2015-07-17
本文导语: 最近开始作一些linux下的java服务器程序,以前只是有一点java的普通的基础,知道简单的win socket编程,因此可能有大量的问题需要向各位高手请教,这里先谢过大家。 今天专门问问多线程的问题,在我所说的编程环...
最近开始作一些linux下的java服务器程序,以前只是有一点java的普通的基础,知道简单的win socket编程,因此可能有大量的问题需要向各位高手请教,这里先谢过大家。
今天专门问问多线程的问题,在我所说的编程环境下多线程其实有三个不同层次的实际解决,首先java的多线程号称是独立于平台的语言特性,也就是说即使是只支持单线程的操作系统上面,java的虚拟机也可以模拟出多线程来(我的个人理解,如有错误请指正),其次是linux系统有自己的多线程库,在c语言中往往可以通过Pthread函数来调用系统的Api生成线程,最后是服务器硬件上具有两个cpu,因此在硬件的层面可以实现真正的多线程并行处理。
我现在想了解了解:
1,当我用java语言实现一个thread类的实例的时候,安装在linux上面的虚拟机会大致上采用什么策略去实现这个多线程呢?是在linux系统中寻求解决,还是在自己的虚拟机内部模拟解决?
2,当linux安装在一个多cpu的服务器上面,多个cpu协同解决多线程并行处理的策略是由linux系统配置文件决定的,还是由不同的服务器硬件自主提供方案解决,也就是说多cpu的协作策略主要取决于硬件制造商还是linux系统的正确安装配置?
3,如果我想了解我上面的提问的答案,我目前合适读一些什么书,什么材料?
谢谢大家
今天专门问问多线程的问题,在我所说的编程环境下多线程其实有三个不同层次的实际解决,首先java的多线程号称是独立于平台的语言特性,也就是说即使是只支持单线程的操作系统上面,java的虚拟机也可以模拟出多线程来(我的个人理解,如有错误请指正),其次是linux系统有自己的多线程库,在c语言中往往可以通过Pthread函数来调用系统的Api生成线程,最后是服务器硬件上具有两个cpu,因此在硬件的层面可以实现真正的多线程并行处理。
我现在想了解了解:
1,当我用java语言实现一个thread类的实例的时候,安装在linux上面的虚拟机会大致上采用什么策略去实现这个多线程呢?是在linux系统中寻求解决,还是在自己的虚拟机内部模拟解决?
2,当linux安装在一个多cpu的服务器上面,多个cpu协同解决多线程并行处理的策略是由linux系统配置文件决定的,还是由不同的服务器硬件自主提供方案解决,也就是说多cpu的协作策略主要取决于硬件制造商还是linux系统的正确安装配置?
3,如果我想了解我上面的提问的答案,我目前合适读一些什么书,什么材料?
谢谢大家
|
1 - Java在实现多线程的时候,有10个优先级,在具体平台上实现的时候也要依赖于平台上的线程库。和AWT的实现方式相似,Java实现多线程也是依靠平台上的实现的。所以我们不能期待多线程程序的各种平台上表现会一致。
就知道这么多:)
就知道这么多:)
|
1.系统优先
2.系统控制
这两个问题都应改是操作系统优先解决得问题
2.系统控制
这两个问题都应改是操作系统优先解决得问题
|
up