黑马程序员技术交流社区

标题: 自己写的一道多线程问题,大家帮我看看有没有问题 [打印本页]

作者: 血马雄风    时间: 2015-8-24 09:03
标题: 自己写的一道多线程问题,大家帮我看看有没有问题
设计4个线程,其中2个线程每次对k加1,另外2个线程减1,并且k<1不能减

技术要求:1、任务1:k-1
          2、任务2:k-2
          3、任务1与任务2存在关联
          4、线程间存在协作
技术要点:1、使用synchronzied
          2、wait()和notify()
          3、注意阻塞和唤醒的条件

class Operation{
    private int i = 0;
    public synchronzied void increment(){
        k++;
        while(k==1) this.notify();
    }   
    public synchronzied void decrement(){
        while(k < 1) this.wait();
        k--;
    }
}

//main()
Operation op = new Operation();
new Thread(new Runnable(){op.increment()}).start();
new Thread(new Runnable(){op.increment()}).start();
new Thread(new Runnable(){op.decrement()}).start();
new Thread(new Runnable(){op.decrement()}).start();




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2