黑马程序员技术交流社区
标题:
多线程模拟小明买盐给妈煮菜以及学习心得
[打印本页]
作者:
刘文飞
时间:
2012-11-18 10:31
标题:
多线程模拟小明买盐给妈煮菜以及学习心得
本帖最后由 刘文飞 于 2012-11-18 10:34 编辑
<P>public class Test10
{
public static void main(String[] args)
{
Salt salt = new Salt();
new Thread(new Son(salt)).start(); //匿名对象直接开启线程
new Thread(new Mother(salt)).start();
}
}
/*
* 将共享的数据封装成一个Salt类
*
*/
class Salt
{
private int count; //能够煮菜的回数;
public synchronized void buySalt() //小明买盐进行的操作
{
if(count==0)
{
System.out.println("---小明!你妈妈喊你去买盐!---");
count = count + 30;
try
{
Thread.sleep(180000);
}
catch(InterruptedException e)
{
e.printStackTrace();
}
System.out.println("---三分钟后,小明买的盐够老妈煮三十回菜!---" + count);
}
}
public synchronized void cook() //老妈煮菜进行的操作
{
if(count>0)
{
System.out.println("---老妈煮菜---" + count--);
}
}
}
/*
*
* 小明线程
*/
class Son implements Runnable
{
private Salt salt;
public Son(Salt salt)
{
this.salt = salt;
}
public void run()
{
while(true)
{
salt.buySalt();
}
}
}
/*
*
* 老妈线程
*
*/
class Mother implements Runnable
{
private Salt salt;
public Mother(Salt salt)
{
this.salt = salt;
}
public void run()
{
while(true)
{
salt.cook();
}
}
}</P>
<P> </P>
<P> </P>
复制代码
看了几天的线程终于把这个问题给搞定了,发帖庆祝下
————————————————————————————————————
再说下学习的心得,从线程开始才看毕老师的视频,之前看的是另外一套视频+java thinking+ java core +head first java(汗,看得有些杂乱啊)这基本书应该都是经典的java书籍,但是看了毕老师的视频之后,才发现那些书并不适合入门,毕老师的才是经典的入门教程。更广泛,深入浅出,循序渐进,基本没有看不懂的地方。书籍还是用来加强用吧,更能锻炼自己的思考能力!
我一般都是先把一天的视频看完,然后在不看老师源代码的情况下,尽量根据自己的思路去把各个问题自己分析下,把代码写出来。大伙都是怎么看视频学习的呢?
——————————————————————
最后求大大们给分啊啊啊啊啊啊!!!别说我自娱自乐了。。。。。。。
作者:
梁胜海
时间:
2012-11-18 11:02
{:soso_e114:},你写的太麻烦了。
作者:
刘文飞
时间:
2012-11-18 11:41
梁胜海 发表于 2012-11-18 11:02
,你写的太麻烦了。
哪里呢?给个简单的参考下。:handshake
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2