实战Java多线程编程精要之高级支持[Java编程]
本文“实战Java多线程编程精要之高级支持[Java编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
线程组
线程是被个体成立的,但可以将它们归类到线程组中,以便于调试和监督.只能在成立线程的同时将它与一个线程组相关联.在利用大量线程的程序中,利用线程组组织线程大概很有帮忙.可以将它们看做是计算机上的目录和文件构造.
线程间发信
当线程在持续履行前需求等候一个条件时,唯一 synchronized 关键字是不够的.固然 synchronized 关键字禁止并发更新一个对象,但它没有实现线程间发信.Object 类为此供应了三个函数:wait()、notify() 和 notifyAll().以环球气候猜测程序为例.这些程序通过将地球分为很多单元,在每个循环中,每个单元的计算都是断绝举行的,直到这些值趋于安定,然后相邻单元之间就会交换一些数据.所以,从本质上讲,在每个循环中各个线程都必须等候全部线程完成各自的任务今后才能进入下一个循环.这个模子称为 屏蔽同步,下例阐明了这个模子:
屏蔽同步
数 notify() 只告诉一个正在等候的线程,当对每次只能由一个线程利用的资源举行拜候限制时,这个函数很有效.但是,不大概预知哪个线程会得到这个告诉,因为这取决于 Java 虚拟机 (JVM) 调度算法.
将 CPU 让给另一个线程
当线程放弃某个稀有的资源(如数据库衔接或网络端口)时,它大概调用 yield() 函数暂时降低自己的优先级,以便某个其他线程可以运行.
保护线程
有两类线程:用户线程和保护线程.用户线程是那些完成有效工作的线程. 保护线程是那些仅供应帮助功效的线程.Thread 类供应了 setDaemon() 函数.Java 程序将运行到全部用户线程终止,然后它将破坏全部的保护线程.在 Java 虚拟机 (JVM) 中,即便在 main 完毕今后,假如另一个用户线程仍在运行,则程序仍旧可以持续运行.
以上是“实战Java多线程编程精要之高级支持[Java编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
本文地址: | 与您的QQ/BBS好友分享! |