multithreading--Thread的睡眠阻塞,sleep

来源:互联网 发布:php session登录原理 编辑:程序博客网 时间:2024/05/11 13:31
public class Thread_sleep1 {/** * 睡眠阻塞sleepblock *  * 默认有线程执行main方法 * @param args */public static void main(String[] args) {long start = System.currentTimeMillis();try {//使当前正在执行的线程沉睡指定的时间,以毫秒为单位Thread.sleep(10000);} catch (InterruptedException e) {//若睡眠期间有另一个线程中断它,则中断异常e.printStackTrace();}long end = System.currentTimeMillis();long time = end-start;System.out.println("睡眠的时间长度:"+time);}}


public class G_sleep {public static void main(String[] args) {/** * 使用Thread.sleep()方法实现计时器 * 注意,该程序会发生跳秒现象 * 跳秒的原因:例如当20:45:1999ms时,首先会睡眠阻隔1000ms * 之后运行该main方法的线程会自动进入runnable状态,再分配时间片, * 这个过程也是需要时间的,假如用了2ms(这2ms可能是累积得来的),则 * 1999ms+1002ms就跳过了20:45:2s */SimpleDateFormat sdf=new SimpleDateFormat("HH-mm-ss");while(true){//死循环System.out.println(sdf.format(new Date()));try {Thread.sleep(1000);//sleep()是static方法,无返回值} catch (InterruptedException e) {//中断异常}}}}


0 0