一个程序产生一个进程,一个进程从开始到结束,中间总会有很多时间被浪费掉。看着都觉得惋惜,比如一个图形界面的程序,当你没有点击任何一个按钮的时候, 程序就什么都不做。多线程提供了一个解决多道任务并行的方法(这么好的东西,可惜好多老师认为不重要都不怎么讲)。这样一来多个任务就可以同时运行且互不 干扰。如果你愿意还可以在不同线程中通信。
讲一个简单的例子比较有说服力,在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不停的读取,仅仅读取一个时间就占了大量的系统资源,而且读取时间的时候还不允许做其他事情。
本文转自 xhinkerx 51CTO博客,原文链接:http://blog.51cto.com/xhinker/134158,如需转载请自行联系原作者