本帖最后由 刘文飞 于 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书籍,但是看了毕老师的视频之后,才发现那些书并不适合入门,毕老师的才是经典的入门教程。更广泛,深入浅出,循序渐进,基本没有看不懂的地方。书籍还是用来加强用吧,更能锻炼自己的思考能力!
我一般都是先把一天的视频看完,然后在不看老师源代码的情况下,尽量根据自己的思路去把各个问题自己分析下,把代码写出来。大伙都是怎么看视频学习的呢?
——————————————————————
最后求大大们给分啊啊啊啊啊啊!!!别说我自娱自乐了。。。。。。。
|