- 如果你觉得我没加对的话,你可以把信息整全一点
- package pack1;
- public class ClassD {
- boolean falg;
- public String name;
- public String sex;
- public static void main(String[] args) {
- ClassD d = new ClassD();
- d.set("asdas", "aaaa");
- d.run();
- }
- public synchronized void set(String name,String sex){
- if(falg)<FONT color=red>{</FONT> //falg默认是false,即if后面的括号里是false,所以到这一步就会跳过,因为代码都是被括在if后面的大括号里
- //所以就直接跳出了此方法,然后开始运行方法run()
- try<FONT color=black>{
- </FONT>
- this.wait();
- }catch(Exception e){
- }
- this.name=name;
- this.sex=sex;
- falg=true;
- this.notify();
- <FONT color=red> }
- </FONT>
- }
- public synchronized void run(){
- if(!falg){ //由于falg默认的是false,所以!falg = true,所以到这里后会进入大括号
- try{ //首先进去try里
- this.wait(); //不好意思,执行这一行代码,就会死这了
- }catch(Exception e){
- }
- //由于上面在执行this.wait();时死那了,所以下面的也就不会继续执行。
- System.out.println(name+"............."+sex);
- falg=false;
- this.notify();
- }
- }
- }
复制代码 |