一、题目
创建2个线程对象表示2个人,二人都要完成在客厅看电视5s,然后去卫生间5s的任务,已知二人同时开始执行任务。
要求:2个人可以同时在客厅看电视,但是上厕所不能同时上,只能排队上
提示:synchronized
二、实现代码
public class Life {
public void live() {
try {
String name = Thread.currentThread().getName();
System.out.println(name+"在客厅看电视");
Thread.sleep(5000);
synchronized (this) {
System.out.println(name+"上厕所");
Thread.sleep(5000);
System.out.println(name+"出厕所");
}
} catch (InterruptedException e) {
e.printStackTrace();
}}}
public class LifeTest {
public static void main(String[] args) {
//创建2个线程对象,表示2个人,要求:2人可以一起看电视,但是得排队上厕所
Life life = new Life();
Thread thread = new Thread() {
public void run() {
life.live();
}};
Thread thread2 = new Thread() {
@Override
public void run() {
life.live();
}};
thread.start();
thread2.start();
}}