建立有响应的用户界面
来源:互联网 发布:linux下weblogic安装 编辑:程序博客网 时间:2024/05/22 05:09
如前所述,使用线程的动机之一就是建立有响应的用户界面。尽管我们要到第 14章才接触
到图形用户界面,你在本章还是可以看到一个基于控制台用户界面的简单例子。下面的例
子有两个版本:一个在全神贯注于运算,所以不能读取控制台输入;另一个把运算放在线
程里单独运行,此时就可以在进行运算的同时监听控制台输入。
//: c13:ResponsiveUI.java
// User interface responsiveness.
import com.bruceeckel.simpletest.*;
classUnresponsiveUI {
private volatile double d = 1;
public UnresponsiveUI() throws Exception {
while(d> 0)
d= d + (Math.PI + Math.E) / d;
System.in.read(); //Never gets here
}
}
public class ResponsiveUI extends Thread {
private static Test monitor = new Test();
private static volatile double d = 1;
public ResponsiveUI() {
setDaemon(true);
start();
}
public void run() {
while(true){
d= d + (Math.PI + Math.E) / d;
}
}
public static void main(String[] args) throws
Exception {
//! new UnresponsiveUI(); // Must kill this
process
newResponsiveUI();
Thread.sleep(300);
System.in.read(); //'monitor' provides input
System.out.println(d); // Shows progress
}
} ///:~
UnresponsiveUI 在一个无限的 while循环里执行运算,显然程序不可能到达读取控制
台输入的那一行(编译器被欺骗了,相信 while 的条件使得程序能到达读取控制台输入的
那一行)。如果你把建立 UnresponsiveUI的那一行解除注释再运行程序,那么要终止它
的话,就只能杀死(kill)这个进程。
要想让程序有响应,就得把计算程序放在 run( )方法中,这样它就能让出处理器给别的程
序。当你按下回车键的时候,你可以看到计算确实在作为后台程序运行,同时还在等待用
户输入(基于测试的原因,控制台输入这一行使用 com.bruceeckel.simpletest.Test
对象自动提交给 System.in.read( )
- 建立有响应的用户界面
- 用线程创建有响应的用户界面
- (23)21.2.12 创建有响应的用户界面
- 12.2.12 创建有响应的用户界面 捕获异常
- java 加入一个线程、创建有响应的用户界面 。 示例代码
- 有用户界面的 php compiler
- Android开发之响应用户界面的事件
- 性能优化之快速响应的用户界面
- 性能优化之快速响应的用户界面
- 性能优化之快速响应的用户界面
- 性能优化之快速响应的用户界面
- 性能优化之快速响应的用户界面
- 性能优化之快速响应的用户界面
- 用Avalon建立未来的Windows用户界面
- 谷歌安卓-培训- 建立简单的用户界面
- Android之建立简单的用户界面
- 高性能Js—快速响应的用户界面
- 建立窗体时所响应的消息。
- 启用TOMCAT的Gzip压缩功能
- poj 1804 (nyoj 117)Brainman : 归并排序求逆序数
- 开启用户sudo权限
- yii CListView中使用CArrayDataProvider自定义数组作为数据
- OpenCV 2 学习笔记(13): 算法的基本设计模式<4> :使用Model-View-Controller模式创建一个应用程序
- 建立有响应的用户界面
- 非构造函数的继承的详细解释
- 共享受限资源
- CentOS 6 yum源更改为163源
- 60个开发者不容错过的免费资源库
- C语言数据结构----栈的应用(四则运算)
- 转载_内核启动详解
- Eclipse 配置Tomcat启动参数 Java EE IDE for Web Developers. Version: Helios Service Release 2
- pf-ring