Java平台从开始就被设计成为多线程环境在你的主程序执行的时候其它作业如碎片收集和事件处理则是在后台进行的
本质上你可以认为这些作业是线程它们正好是系统管理线程但是无论如何它们是线程线程使你能够定义相互独立的作业彼此之间互不干扰系统将交换这些作业进或出cpu这样(从外部看来)它们好象是同时运行的
在你需要在你的程序中处理多个作业时你也可以使用多个进程这些进程可以是你自己创建的你也可以操纵系统线程你进行这些多作业处理要使用几个不同的类或接口
javautiltimer类
javaxswingtimer类
thread类
runnable接口
对于简单的作业通常需要重复的你可以使用javautiltimer类告诉它每半秒钟做一次注意大多数系统例程是使用毫秒的半秒钟是毫秒
你希望timer实现的任务是在javautiltimertask实例中定义的其中运行的方法包含要执行的任务这些在hi类中进行了演示其中字符串hi重复地被显示在屏幕上直到你按enter键
importjavautil*;
publicclasshi
{
publicstaticvoidmain
(stringargs);
timercancel();
}
}
javaruntimeenvironment工作的方式是只要有一个线程在运行程序就不退出这样当取消被调用没有其它线程在运行了则程序退出有一些系统线程在运行如碎片收集程序这些系统线程也被称为后台线程后台线程的存在不影响运行环境被关闭只有非后台线程保证运行环境不被关闭
javaxswingtimer类与javautiltimer类的工作方式相似但是有一些差别需要注意第一运行的作业被actionlistener接口的实现来定义第二作业的执行是在事件处理线程内部进行的而不象javautiltimer类是在它的外部这是很重要的因为它关系到swing组件集是如何设计的
如果你不熟悉swing它是一组可以被java程序使用的图形组件swing被设计程被称为单线程的这意味着对swing类内部内容的访问必须在单个线程中完成这个特定的线程是事件处理线程
[] []