黑马程序员技术交流社区
标题:
这个问题一直没有解决掉
[打印本页]
作者:
庄生晓梦
时间:
2013-4-1 20:49
标题:
这个问题一直没有解决掉
本帖最后由 庄生晓梦 于 2013-4-7 15:22 编辑
模拟妈妈做饭,做饭时发现没有盐了,
让儿子去买盐(假设买盐需要3分钟),
只有盐买回来之后,妈妈才能继续做饭的过程。
作者:
黑马19我最牛
时间:
2013-4-1 21:10
让做饭睡眠3分钟然后再激活!
作者:
栗俊植
时间:
2013-4-1 21:14
多线程的问题,妈妈和儿子各看作一个线程,盐可以看作锁,儿子拿到锁wait三分钟之后释放锁。妈妈继续做饭!
作者:
J_hom
时间:
2013-4-1 21:45
我感觉也可以用定时调度也可以,Timer和TimerTask类,线程也可以。
http://note.youdao.com/share/?id=b377839663f2241a059b0df455d283a4&type=note
这是我自己的有道云笔记
作者:
黄小贝
时间:
2013-4-2 02:03
public class Cooking {
boolean hasSalut = false;
Object object = new Object();
public void cook() {
if (!hasSalut) {
System.out.println("做饭没盐了,快去买盐");
new Thread(new Son()).start();
synchronized (object) {
try {
object.wait();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
System.out.println("有盐了,开始做饭~");
}
}
class Son implements Runnable {
@Override
public void run() {
System.out.println("麻麻,我去买盐了~~");
try {
Thread.sleep(500);
} catch (InterruptedException e) {
e.printStackTrace();
}
synchronized (object) {
System.out.println("麻麻,买到了~~");
object.notify();
}
}
}
public static void main(String[] args) {
Cooking cooking = new Cooking();
cooking.cook();
}
}
复制代码
作者:
黄玉昆
时间:
2013-4-3 12:00
如果仍有问题,请继续追问,如果问题已解决,请将分类改为已解决,谢谢
作者:
庄生晓梦
时间:
2013-4-4 16:03
黄玉昆 发表于 2013-4-3 12:00
如果仍有问题,请继续追问,如果问题已解决,请将分类改为已解决,谢谢 ...
如何进行修改啊,木有找到怎么修改为已解决
作者:
庄生晓梦
时间:
2013-4-4 16:07
黄小贝 发表于 2013-4-2 02:03
谢谢了,我看了但是有关于多线程的,还是不明白
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2