Java 线程实现动态时间

Java语言提主要供了两种实现线程的方式:继承Thread类创建线程类,实现Runnable接口创建线程类

线程是程序执行的最小单位,一个进程可由一个或多个线程组成

线程有五种状态:新建状态,就绪状态,运行状态,阻塞状态,结束状态

新建状态就是线程对象实例化后就新建了,就绪状态就是该对象的start()方法被调用就处于就绪状态了,运行状态就是从就绪状态执行之后就是运行状态,只能从就绪状态进入运行状态,阻塞就是线程因某个原因暂停,把cpu的使用权让出,

结束就是线程执行完或者出现异常退出时,就结束了

 

接下来看下如何用线程实现时间

第一步就是定义一个类来继承Thread类,要重写run()方法,这个方法里面写要执行的代码

class MyThread extends Thread{

public void run(){}

}

既然把线程类写好了接下来就是在run方法里面写需要的方法咯,那我们就写时间的打印实现吧

//1、先写个循环,用来输出时间

for (int i = 0; i > -1; i++) {

try {

//2、调用线程的sleep方法,这个方法是让线程休眠一秒钟,可以理解为暂停

sleep(1000);

//3、实例化和创建Calendar类的对象,Calendar类的作用是使用默认时区和语言环境获得一个日历

Calendar cal = Calendar.getInstance();

//4、实例化和创建StringBuilder类的对象,其作用是用来拼接数据,作用   等同于符号+

StringBuilder builder = new StringBuilder();

//5、通过builder.append方法把参数拼接起来,cal.get(Calendat.YEAR)这个就是通过cal对象来获取年份

builder.append(cal.get(Calendar.YEAR) + " ");

//获取月

builder.append(cal.get(Calendar.MONTH) + " ");

builder.append(cal.get(Calendar.DAY_OF_MONTH)+ " "); //获取日

builder.append(cal.get(Calendar.HOUR_OF_DAY) + ":");                  //获取分钟

builder.append(cal.get(Calendar.MINUTE) + ":");

                           //获取秒

builder.append(cal.get(Calendar.SECOND));

//输出

System.out.println( builder.toString());

} catch (InterruptedException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

要执行的方法写完了接下来就是在main主方法里面创建该线程的对象来调用start方法启动线程

public class JavaTime {

public static void main(String[] args) {

//创建线程对象

MyThread myThread = new MyThread();

//调用start方法

myThread.start();

}

}

Java 线程实现动态时间