您的位置:首页 > 编程语言 > Java开发

再说java多线程Thread

2006-10-26 10:44 239 查看
一个程序产生一个进程,一个进程从开始到结束,中间总会有很多时间被浪费掉。看着都觉得惋惜,比如一个图形界面的程序,当你没有点击任何一个按钮的时候,
程序就什么都不做。多线程提供了一个解决多道任务并行的方法(这么好的东西,可惜好多老师认为不重要都不怎么讲)。这样一来多个任务就可以同时运行且互不
干扰。如果你愿意还可以在不同线程中通信。

讲一个简单的例子比较有说服力,在applet中显示动态显示系统时间。

import java.awt.*;

import java.applet.*;

import java.util.*;//这个包用于取得当前时间

public class Counter extends Applet {

public Label
label=new Label("您当前的系统时间:");

public Label
timeDisplay = new
Label("
");

public
void init() {//把这里改动一下同样可以在窗体中执行

this.add(label);//在applet中加入label下同

this.add(timeDisplay);

new Time();//生成一Time类的对象

}


class Time extends Thread{//发现了没有,这是一个内部类

String
hour=null;
//内部类可以直接访问外布类的数据

String minuter=null;
//外部类却不可以访问内部类的数据

String second=null;

public Time(){

start();//这样线程类一被构造,马上就运行run()

}

public void run(){

while(true){

try {

sleep(1000);//暂停一秒

} catch (InterruptedException ex) {

ex.printStackTrace();

}

Date date=new Date();

hour=String.valueOf(date.getHours());

minuter=String.valueOf(date.getMinutes());

second=String.valueOf(date.getSeconds());

timeDisplay.setText(hour+":"+minuter+":"+second);

}

}

}//内部类到此为止


}

这样做的好处是,系统资源得到很好的利用,如果用c/c++的话则要用while不停的读取,仅仅读取一个时间就占了大量的系统资源,而且读取时间的时候还不允许做其他事情。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息