Java多线程编程之限制优先级程序员
限制线程优先级和调度数据库
做者:兄弟连 www.itxdl.cn编程
Java 线程模型涉及能够动态更改的线程优先级。本质上,线程的优先级是从 1 到 10 之间的一个数字,数字越大代表任务越紧急。JVM 标准首先调用优先级较高的线程,而后才调用优先级较低的线程。可是,该标准对具备相同优先级的线程的处理是随机的。如何处理这些线程取决于基层的操做系统策略。在某些状况下,优先级相同的线程分时运行;在另外一些状况下,线程将一直运行到结束。请记住,Java 支持 10 个优先级,基层操做系统支持的优先级可能要少得多,这样会形成一些混乱。所以,只能将优先级做为一种很粗略的工具使用。最后的控制能够经过明智地使用 yield() 函数来完成。一般状况下,请不要依靠线程优先级来控制线程的状态。服务器
小结网络
本文说明了在 Java 程序中如何使用线程。像是否应该使用线程这样的更重要的问题在很大程序上取决于手头的应用程序。决定是否在应用程序中使用多线程的一种方法是,估计能够并行运行的代码量。并记住如下几点:多线程
使用多线程不会增长 CPU 的能力。可是若是使用 JVM 的本地线程实现,则不一样的线程能够在不一样的处理器上同时运行(在多 CPU 的机器中),从而使多 CPU 机器获得充分利用。函数
若是应用程序是计算密集型的,并受 CPU 功能的制约,则只有多 CPU 机器可以从更多的线程中受益。工具
当应用程序必须等待缓慢的资源(如网络链接或数据库链接)时,或者当应用程序是非交互式的时,多线程一般是有利的。操作系统
基于 Internet 的软件有必要是多线程的;不然,用户将感受应用程序反映迟钝。例如,当开发要支持大量客户机的服务器时,多线程可使编程较为容易。在这种状况下,每一个线程能够为不一样的客户或客户组服务,从而缩短了响应时间。线程
某些程序员可能在 C 和其余语言中使用过线程,在那些语言中对线程没有语言支持。这些程序员可能一般都被搞得对线程失去了信心。