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();
}
}