关于JAVA线程和线程池的学习

Java线程:

Java线程不等于系统线程,Java线程和系统线程也没有必然的映射关系。

参考文档:

http://wenku.baidu.com/view/2ffaac1fa8114431b90dd8fe.html

java的线程概念与操作系统的线程概念是不同的,java的线程概念差不多与windows线程概念一致,但是java既然目标是跨平台语言,那么它的线程机制概念是在所有平台上都是一样的,但是实际实现又不是如此,这要从进程与线程的概念中谈起:
首先在windows系列系统中,进程所拥有的内存空间都是独立的,此进程所持有的内存其它进程是不可以直接访问的,而且在windows系统内部一个进程就是一个运行的运用程序,而为了解决应用程序内部的并行问题便有了线程的概念,线程没有自我独立的内存空间,在一个进程中所有的线程共享这个进程所持有的内存空间。
而在某些Unix系统当中,进程所持有的内存空间是可以被其他进程进行访问的,而且一个运用程序可能不止一个进程,这样的系统没有线程的概念,运用的并行问题有多个进程协调来解决。
java为了实现平台无关性,必须解决这样一个问题,因此java建立了一套自己的进程与线程机制,这套机制与windows系统的颇为相似,但是底层实现确实根据不同平台的机制进行实现,比如windows下的线程机制就是利用windows本身的线程机制加上某些改进进行处理的,而某些没有线程的Unix系统则是用进程来替代线程进行实现的,然后在其中确立一个主进程来替代自身进程。虽然这样的实现解决了大部分的线程平台无关性,但是也有些无法解决的,比如线程优先级,windows下线程是有优先级的,但是某些Linux系统,某些Unix系统,进程与线程直接不区分优先级,因此优先级在每个系统下的表现形式就不一样,例如低优先级的进程可能在windows下被饿死,但是在linux下,根本就无法感觉它优先级较低,还有,在建立一个线程与杀死一个线程运用所带来的开销也会不同,在windows下建立或杀死线程可能是不需要什么开销的,但是在没有线程概念的进程行操作系统中,杀死或者建立线程可能带来巨大开销

 

—————————————————————————————————————————————–

Java自带的线程池ThreadPoolExecutor详细介绍说明和实例应用

http://fulong258.blog.163.com/blog/static/17895044201082951820935/
http://www.cnblogs.com/jersey/archive/2011/03/30/2000231.html

 

Java线程示例

http://www.cnblogs.com/rollenholt/archive/2011/08/28/2156357.html

 

留下评论

邮箱地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据