本帖最后由 chouwayメ 于 2013-10-8 23:03 编辑
- /**
- * 模拟妈妈做饭,做饭时发现没有盐了,让儿子去买盐(假设买盐需要3分钟),
- * 只有盐买回来之后,妈妈才能继续做饭的过程。
- *
- */
- public class test10
- {
- public static void main(String[] args)
- {
- Mother mother=new Mother();
- new Thread(mother).start();
- }
- }
- class Mother implements Runnable
- {
- boolean cooking=true;
- static int salt=0;
- public void run() {
- // TODO Auto-generated method stub
- while(cooking){
- if(salt==0) //判断出盐不够了,下面继续执行
- {
- System.out.println("做饭没有盐了,让儿子出去买盐!!");
- Son son =new Son(); //创建son的实例化对象
- son.start();//用son的实例化对象调用son类内部的方法,叫儿子去买盐
- }
- System.out.println("儿子买盐回来,妈妈继续做饭...");
- cooking=false;
- }
- }
- }
- class Son extends Thread{
- boolean s = true;
- public void run(){
- buySalt(); } // run方法中就只放个buySalt就一动作。
- public
- <span style="background-color: rgb(255, 255, 255); ">synchronized</span> void buySalt() // 创建买盐方法,buSalt。
- {
- System.out.println("儿子出去买盐,用了三分钟后回来了。");
- while(s){
- try{
- sleep(180);}//儿子出去买盐三分钟; }
- catch(InterruptedException e){ e.printStackTrace();
- }
- s=false;}
- }
- }
复制代码 |