关于java线程优先级的问题
2018-03-19 13:11
211 查看
1.优先级的映射。
jvm为线程提供了大概9个优先级,但是不同的操作系统提供的优先级等级也不同,windows没到9个,linux比较多,solaris比linux还要多,而且线程或进程的调度是交由操作系统cpu调度策略调度的,如果你是windows操作系统,假如它只提供了两种优先级,那么你设置的jvm优先级1~4可能映射到操作系统的1优先级,而5~9映射到操作系统的2优先级,所以1~4的效果是一样的,5~9的效果是一样的。
这个问题在深入理解jvm中,多线程优化那部分有介绍!
2.优先级的设置
线程优先级并不能保证线程的执行顺序,优先级高的并不一定先执行,优先级低的也不一定不执行
不要试图使用优先级来控制线程的执行顺序
线程优先级的设置,并不能指定线程的运行顺序,这个是由操作系统调度的。
线程优先级不能作为程序正确性的依赖,因为操作系统可以完全不用理会JAVA线程对于优先级的设定。——->《JAVA并发编程基础》
jvm为线程提供了大概9个优先级,但是不同的操作系统提供的优先级等级也不同,windows没到9个,linux比较多,solaris比linux还要多,而且线程或进程的调度是交由操作系统cpu调度策略调度的,如果你是windows操作系统,假如它只提供了两种优先级,那么你设置的jvm优先级1~4可能映射到操作系统的1优先级,而5~9映射到操作系统的2优先级,所以1~4的效果是一样的,5~9的效果是一样的。
这个问题在深入理解jvm中,多线程优化那部分有介绍!
2.优先级的设置
线程优先级并不能保证线程的执行顺序,优先级高的并不一定先执行,优先级低的也不一定不执行
不要试图使用优先级来控制线程的执行顺序
线程优先级的设置,并不能指定线程的运行顺序,这个是由操作系统调度的。
线程优先级不能作为程序正确性的依赖,因为操作系统可以完全不用理会JAVA线程对于优先级的设定。——->《JAVA并发编程基础》
相关文章推荐
- 关于java线程的停止问题(转载至 http://dev.21tx.com 2005年05月03日 Matrix-与Java共舞 )
- java高级多线程编程--关于线程的停止问题
- java高级多线程编程(一)--关于线程的停止问题
- 关于java.util.concurrent.atomic.*包下面的线程问题
- java高级多线程编程--关于线程的停止问题
- java高级多线程编程--关于线程的停止问题
- java关于线程的问题
- java多线程程序设计二、线程返回值,优先级以及暂停的问题
- java IO 管道流 关于两个线程通信的问题
- 关于java中多线程的问题的一点思考(什么情况下需要考虑到线程,以及线程安全的问题?)
- java高级多线程编程(一)--关于线程的停止问题
- 关于java Servlet,Struts,springMVC 的线程安全问题
- 关于java中的StringBuilder的线程安全问题
- java高级多线程编程--关于线程的停止问题
- 关于java线程、进程的一些问题
- 如果我是国王:关于解决 Java 编程语言线程问题的建议
- 关于JAVA的线程问题
- java高级多线程编程(一)--关于线程的停止问题
- 如果我是国王:关于解决 Java 编程语言线程问题的建议