博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
再说java多线程Thread
阅读量:6594 次
发布时间:2019-06-24

本文共 1199 字,大约阅读时间需要 3 分钟。

一个程序产生一个进程,一个进程从开始到结束,中间总会有很多时间被浪费掉。看着都觉得惋惜,比如一个图形界面的程序,当你没有点击任何一个按钮的时候, 程序就什么都不做。多线程提供了一个解决多道任务并行的方法(这么好的东西,可惜好多老师认为不重要都不怎么讲)。这样一来多个任务就可以同时运行且互不 干扰。如果你愿意还可以在不同线程中通信。
 
讲一个简单的例子比较有说服力,在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,如需转载请自行联系原作者
你可能感兴趣的文章
使用ReaderWriterLock类实现多用户读/单用户写同步
查看>>
中国式危机公关9加1策略(第十四章 国外危机应对案例參考)
查看>>
CKEditor上传插件
查看>>
Java 缩放图片工具类,创建缩略图、伸缩图片比例
查看>>
Rebuild Instance 操作详解 - 每天5分钟玩转 OpenStack(37)
查看>>
利用scp传输文件小结
查看>>
面向对象设计模式纵横谈:Factory Method 工厂方法模式(笔记记录)
查看>>
C++使用hiredis连接带密码的redis服务
查看>>
SQL SERVER 批量生成编号
查看>>
thinkjs——一个字段一种数字代表两种状态
查看>>
C++的那些事:类的拷贝控制
查看>>
numpy得到数组的index
查看>>
JSP页面重定向
查看>>
RecyclerView具体解释
查看>>
vue2.0 vue-loader
查看>>
美国埃博拉患者是怎样治愈的?
查看>>
[离散时间信号处理学习笔记] 9. z变换性质
查看>>
简单实用SQL脚本Part:查找SQL Server 自增ID值不连续记录
查看>>
关系型数据库的分片原则
查看>>
浅谈线段树中加与乘标记的下放
查看>>