1,加入sleep();方法:
sleep方法和wait方法的异同点:
相同点, 都可以使线程处于冻结状态。
异同点 : 1,sleep可以指定时间,wait可以指定时间,也可以不指定时间。
2,sleep是时间到了,线程处于阻塞状态或者运行。
wait如果没有指定时间,必须通过notify和notifyAll唤醒。
3,sleep不一定非要定义在同步中。
wait一定定义在同步中。
4,都定义在同步中,执行sleep不会释放锁,执行到wait会释放锁。
2,加入join方法:设置哪个线程,哪个线程要先执行完,剩下的线程才能执行。
3,设置守护线程:主线程执行完毕后设置的守护线程也要结束。
package itheimaThread;
public class ThreadDemo {
public static void main(String[] args) {
ThreadSleep s= new ThreadSleep();
Thread t1 = new Thread(s);
Thread t2 = new Thread(s);
Thread t3 = new Thread(s);
t1.setName(“刘备”);//给线程起名字
t2.setName(“曹操”);
t3.setName(“孙权”);
t1.start();
try {
t1.join();//等待线程结束,这个线程结束其他的线程才能运行
} catch (InterruptedException e) {
e.printStackTrace();
}
t2.start();
t3.start();
}
}
class ThreadSleep implements Runnable {
public void run(){
for(int x =0;x<=100;x++)
System.out.println(Thread.currentThread().getName()+"…"+x);
try {
Thread.sleep(100);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}