zoukankan      html  css  js  c++  java
  • 生产消费者 Lock处理方式纯语言概述

    资源

         数量

         生产方法

         消费方法

    生产者  实现Runnalbe接口

    消费者 实现Runnalbe接口

    由于生产和消费各一个或者多个线程,我们希望的结果是生产一个 消费一个,为了实现这个目的必须要,生产的时候保证消费者是Wait的

    消费的时候保证生产时Wait的 

    定义一个标记再生产和消费之前都判断这个标记,如果这个比较为True则生产等待,消费进行消费

    消费完毕后将标记改为False,同时唤醒生产者

    生产运行的时候判断标记如果为false则开始生产 生产完毕后修改标记为True

    另外代码需要同步

    但是如果多个线程进行生产和消费还是会产生线程安全问题,因此处理方式是   首先声明一个Lock对象

    Lock对象最重要的就是其对应的监视器对象,其实等待和唤醒都是依赖监视器对象的。

    Lock.conndition()可以获得该对象对应的监视器。

    同一个锁可以制定不同的监视器

    不同监视器对象可以负责不同线程的唤醒和wait操作,所以只要把不同的任务,放在不同的监视器上就可以实现唤醒和等待对应的对象是不同的

    lock.lock()加锁

    lock.unlock()解锁

  • 相关阅读:
    java课程设计---团体
    Java课设(学生信息管理系统)
    201521123044 《Java程序设计》第14周学习总结
    201521123044 《Java程序设计》第13周学习总结
    软件工程个人总结
    alpha阶段个人总结
    软件工程第四周 案例分析
    软件工程第三周 结对编程
    软件工程第二周阅读作业
    IPV6
  • 原文地址:https://www.cnblogs.com/hysys32/p/6700454.html
Copyright © 2011-2022 走看看