zoukankan      html  css  js  c++  java
  • Thread sleep()休眠

    Thread sleep()休眠就是让线程进入休眠状态TIMED_WAITING,sleep("毫秒数"),当休眠时间到了之后继续线程。当然也可以用中断线程interrupt()来中断线程休眠。判断线程是否休眠if(ts.getstate()==state.TIMED_WAITING)

    线程的6中状态(1).NEW新建状态(2).Runnable运行状态(3).TIMED_WAITING休眠状态(4).WAITING等待(5).BLOCKED阻塞(6).TERMINATED退出

    Wait() 与sleep()方法的异同
    同:
    都使线程进入休眠状态。
    都会被interrupt打断。
    wait(long)sleep(long)都会因超时而醒来。
    异:
    wait,将释放监视器锁。sleep,不释放锁。
    wait时,必须执有监视器锁。sleep时,与锁无关。
    wait与notify配套使用。sleep不可以。

    利用线程休眠来做秒表

    import javax.swing.*;
    import java.awt.*;
    import java.awt.event.ActionEvent;

    public class Time extends JFrame{
    public Time(){
    setTitle("秒表");

    setSize(300,300);
    setVisible(true);
    setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
    JLabel label=new JLabel("00:000");
    Font f=new Font("微软雅黑",Font.BOLD,56);
    label.setFont(f);
    label.setBounds(30,10,250,100);
    add(label);
    JButton bt=new JButton("开始");
    bt.addActionListener(new AbstractAction() {
    @Override
    public void actionPerformed(ActionEvent e) {
    new Thread(new Runnable() {
    @Override
    public void run() {
    long s=0,ms,start=System.currentTimeMillis();//获取系统当前时间
    while (true){
    ms=System.currentTimeMillis()-start;
    s=ms/1000;ms=ms%1000;
    String ss=s+"",sms=ms+"";
    if (s<10) ss="0"+ss;
    if (ms<10) sms="00"+ms;
    else if (ms<100) sms="0"+ms;
    String str=ss+":"+sms;
    label.setText(str);
    // System.out.println(str);
    try {
    Thread.sleep(10);//休眠10毫秒
    } catch (InterruptedException e) {
    e.printStackTrace();
    }
    }
    }
    }).start();
    }
    });
    bt.setBounds(30,200,80,30);
    add(bt);
    JButton bt1=new JButton("暂停");
    bt1.setBounds(150,200,80,30);
    add(bt1);
    JLabel b=new JLabel();
    add(b);

    }
    public static void main(String[] args){
    SwingUtilities.invokeLater(new Runnable() {
    @Override
    public void run() {
    new Time();
    }
    });
    }
    }
  • 相关阅读:
    asp.net的尖括号绑定字段总结
    在 ASP.NET 中实现不同角色的用户使用不同登录界面的方法
    同一个页面内根据分类查询
    利用修改AccessDataSource的sql语句来检索数据
    ADO.NET站内模糊搜索
    又是一个新阶段
    完成一个测试的小功能实践题
    苦心志,劳筋骨,饿体肤,乏其身,乱其所为
    毕业设计进入收尾阶段
    两种模糊过滤关键字的方法
  • 原文地址:https://www.cnblogs.com/feipengting/p/7542382.html
Copyright © 2011-2022 走看看