今天开始深入学习Java线程,就先从sleep,join,interrupt这3个函数开始吧。
先来看一下这3个函数的功能。
1,sleep:是Thread类的一个静态方法,作用是让当前线程阻塞,该函数的参数就是阻塞时间,以毫秒为单位。
2,interrupt:中断线程。
3,join:作用是让两个线程同步。例如:有A,B两个线程,如果在B中调用了A.join()的话,则表示A线程执行完了才开始执行B线程。
废话不说了,边看例子变学习吧。
========================sleep篇========================
例子所要实现功能:启动一个线程,每隔一秒钟执行一次打印
下面看代码:
package lxcjie;
import java.util.Calendar;
public class SleepDemo extends Thread {
public static void main(String[] args) {
//创建线程
SleepDemo sleep = new SleepDemo();
//线程开始执行
sleep.start();
}
public void run() {
try {
//做一个无限循环,每一秒输出一次内容
while (true) {
//线程中断1秒钟后继续执行
sleep(1000);
System.out.println(getTime() + " " + getName() + " Is Running");
}
} catch (InterruptedException e) {
e.printStackTrace();
}
}
//为了更容易理解,在打印内容前面加上当前时间
private String getTime() {
Calendar rightNow = Calendar.getInstance();
rightNow.setTimeInMillis(System.currentTimeMillis());
return rightNow.get(Calendar.HOUR) + ":"