分享
 
 
 

java线程简介(其它线程API详细信息)

王朝java/jsp·作者佚名  2008-05-31
窄屏简体版  字體: |||超大  

1、wait()、notify() 和 notifyAll() 方法

除了使用轮询(它可能消耗大量 CPU 资源,而且具有计时不精确的特征),Object 类还包括一些方法,可以让线程相互通知事件的发生。

Object 类定义了 wait()、notify() 和 notifyAll() 方法。要执行这些方法,必须拥有相关对象的锁。

Wait() 会让调用线程休眠,直到用 Thread.interrupt() 中断它、过了指定的时间、或者另一个线程用 notify() 或 notifyAll() 唤醒它。

当对某个对象调用 notify() 时,假如有任何线程正在通过 wait() 等待该对象,那么就会唤醒其中一个线程。当对某个对象调用 notifyAll() 时,会唤醒所有正在等待该对象的线程。

这些方法是更复杂的锁定、排队和并发性代码的构件。但是,notify() 和 notifyAll() 的使用很复杂。尤其是,使用 notify() 来代替 notifyAll() 是有风险的。除非您确实知道正在做什么,否则就使用 notifyAll()。

与其使用 wait() 和 notify() 来编写您自己的调度程序、线程池、队列和锁,倒不如使用 util.concurrent 包(请参阅参考资料),这是一个被广泛使用的开放源码工具箱,里面都是有用的并发性实用程序。JDK 1.5 将包括 Java.util.concurrent 包;它的许多类都派生自 util.concurrent。

2、线程优先级

Thread API 让您可以将执行优先级与每个线程关联起来。但是,这些优先级如何映射到底层操作系统调度程序取决于实现。在某些实现中,多个 — 甚至全部 — 优先级可能被映射成相同的底层操作系统优先级。

在碰到诸如死锁、资源匮乏或其它意外的调度特征问题时,许多人都想要调整线程优先级。但是,通常这样只会把问题移到别的地方。大多数程序应该完全避免更改线程优先级。

3、线程组

ThreadGroup 类原本旨在用于把线程集合构造成组。但是,结果证实 ThreadGroup 并没有那样有用。您最好只使用 Thread 中的等价方法。

ThreadGroup 确实提供了一个有用的功能部件(Thread 中目前还没有):uncaughtException() 方法。线程组中的某个线程由于抛出了未捕捉的异常而退出时,会调用 ThreadGroup.uncaughtException() 方法。这就让您有机会关闭系统、将一条消息写到日志文件或者重新启动失败的服务。

4、SwingUtilities

虽然 SwingUtilities 类不是 Thread API 的一部分,但还是值得简单提一下。

正如前面提到的,Swing 应用程序有一个 UI 线程(有时叫称为事件线程),所有 UI 活动都必须在这个线程中发生。有时,另一个线程也许想要更新屏幕上某样东西的外观,或者触发 Swing 对象上的一个事件。

SwingUtilities.invokeLater() 方法可以让您将 Runnable 对象传送给它,并且在事件线程中执行指定的 Runnable。它的同类 invokeAndWait() 会在事件线程中调用 Runnable,但 invokeAndWait() 会阻塞,直到 Runnable 完成执行之后。

void showHelloThereDialog() throws Exception {

Runnable showModalDialog = new Runnable() {

public void run() {

JOptionPane.showMessageDialog(myMainFrame, "Hello There");

}

};

SwingUtilities.invokeLater(showModalDialog);

}

对于 AWT 应用程序,java.awt.EventQueue 还提供了 invokeLater() 和 invokeAndWait()。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有