摘要:为什么会排队等待? 下面的这个简单的 java 程序完成四项不相关的任务。这样的程序有单个控制线程,控制在这四个任务之间线性地移动。此外,因为所需的资源 ? 打印机、磁盘、数据库和显示屏 -- 由于硬件和软件的限制都有内在的潜伏时间,所以每项任务都包含明显的等待时间。因此,程序在访问数据库之前必须等待打印机完成打印文件的任务,等等。如果您正在等待程序的完成,则这是对计算资源和您的时间的一种拙劣使用......
摘要:java的实用工具类库java.util包中,java提供了一些实用的方法和数据结构。例如,java提供日期(data)类、日历(calendar)类来产生和获取日期及时间,提供随机数(random)类产生各种类型的随机数,还提供了堆栈(stack)、向量(vector) 、位集合(bitset)以及哈希表(hashtable)等类来表示相应的数据结构。
图1给出了java.util包的基本层次......
线程与Swing上一页 ...public class myapplication {public static void main(string[] args) { jframe f = new jframe("labels"); // 在这里将各组件 // 加入到主框架…… f.pack(); f.show(); // 不要再做任何gui工作…… } } 【程序编程相关:
亚洲网通升级网络 泛亚海底光缆容量增50】 【推荐阅读:
Wi-Fi手机价格偏高 销售量将会受到影】上面所示的代码全部在“main”线程中运行.对f.pack()的调用使得jframe以下的组件都被具现化.这意味着,f.show()调用是不安全的且应该在事件派发线程中执行.尽管如此,只要程序还没有一个看得到的gui,jframe或它的里面的组件就几乎不可能在f.show()返回前收到一个paint()调用.因为在f.show()调用之后不再有任何gui代码,于是所有gui工作都从主线程转到了事件派发线程,因此前面所讨论的代码实际上是线程安全的. 【扩展信息:
伦敦将成首个实现城市级WiMAX服务的英】 一个applet的gui可以在init()方法中构造与显示:现有的浏览器都不会在一个applet的init()与start()方法被调用前绘制它.因而,在一个applet的init()方法中构造gui是安全的,只要你不对applet中的对象调用show()或setvisible(true)方法. 要顺便一提的是,如果applet中使用了swing组件,就必须实现为japplet的子类.并且,组件应该添加到的japplet内容窗格(content pane)中,而不要直接添加到japplet.对任何applet,你都不应该在init()或start()方法中执行费时的初始化操作;而应该启动一个线程来执行费时的任务. 下述jcomponent方法是安全的,可以从任何线程调用:repaint().revalidate().与invalidate().repaint()与revalidate()方法为事件派发线程对请求排队,并分别调用paint()与validate()方法.invalidate()方法只在需要确认时标记一个组件与它的所有直接祖先. 监听者列表可以由任何线程修改:调用addlistenertypelistener()与removelistenertypelistener()方法总是安全的.对监听者列表的添加/删除操作不会对进行中的事件派发有任何影响. 注意:revalidate()与旧的validate()方法之间的重要区别是,revalidate()会缓存请求并组合成一次validate()调用.这与repaint()缓存并组合绘制请求类似. 大多数初始化后的gui工作自然地发生在事件派发线程.一旦gui成为可见,大多数程序都是由事件驱动的,如按钮动作或鼠标点击,这些总是在事件派发线程中处理的. 不过,总有些程序需要在gui成为可见后执行一些非事件驱动的gui工作.比如: ...
下一页 摘要:http客户端程序已集成在java语言中,可以通过urlconnection类调用。遗憾的是,由于sun没有公布http客户程序的源码,它实现的细节仍是一个谜。本文根据http协议规范,用java.net.socket类实现一个http协议客户端程序。1.socket类
了解tcp/ip协议集通信的读者知道,协议间的通信是通过socket完成的。在java.net包中,socket类就是对soc......