sleep()方法是使一个线程的执行暂时停止的方法,暂停的时间由给定的毫秒数决定。
语法格式为:
Thread.sleep(long millis)
millis:必选参数,该参数以毫秒为单位设置线程的休眠时间。
执行该方法后,当前线程将休眠指定的时间段,如果任何一个线程中断了当前线程的休眠,该方法将抛出InterruptedException异常对象,所以在使用sleep()方法时,必须捕获该异常。
join()方法能够使当前执行的线程停下来等待,直至join()方法所调用的那个线程结束,再恢复执行。
语法格式为:
thread.join()
thread:一个线程的对象。
例如有一个线程A正在运行,用户希望插入一个线程B,并且要求线程B执行完毕,然后再继续线程A,
结束线程有两种情况:
(1)自然消亡:一个线程从run()方法的结尾处返回,自然消亡且不能再被运行;
(2)强制死亡:调用Thread类中stop()方法强制停止,不过该方法已经被废弃。
虽然这两种情况都可以停止一个线程,但最好的方式是自然消亡,简单地说,如果要停止一个线程的执行,最好提供一个方式让线程可以完成run()的流程。
例如:线程的run()方法中执行一个无限循环,在这个循环中可以提供一个布尔变量或表达式来控制循环是否执行,在线程执行中,可以调用方法改变布尔变量的值,用这种方式使线程离开run()方法以终止线程。