当前位置: 首页 > wzjs >正文

网站建设网站维护免费推广途径与原因

网站建设网站维护,免费推广途径与原因,外部门户网站首页,设计吧实验报告2-多线程并发 一、实现思路 生产者消费者问题描述了共享固定大小缓冲区的两个线程——即所谓的“生产者”和“消费者”——在实际运行时会发生的问题。生产者的主要作用是生成一定量的数据放到缓冲区中,然后重复此过程。与此同时,消费者也在缓冲…

实验报告2-多线程并发

一、实现思路

        生产者消费者问题描述了共享固定大小缓冲区的两个线程——即所谓的“生产者”和“消费者”——在实际运行时会发生的问题。生产者的主要作用是生成一定量的数据放到缓冲区中,然后重复此过程。与此同时,消费者也在缓冲区消耗这些数据。该问题的关键就是要保证生产者不会在缓冲区满时加入数据,消费者也不会在缓冲区中空时消耗数据。要求:

        1、在缓冲区为空时,消费者不能再进行消费

        2、在缓冲区为满时,生产者不能再进行生产

        3、在一个线程进行生产或消费时,其余线程不能再进行生产或消费等操作,即保持线程间的同步

        4、注意条件变量与互斥锁的顺序

二、实验步骤

Store仓库类

public class Store {// 仓库容量private int capacity;// 底层数据结构private List list = new LinkedList<Object>();public int getCapacity() {return capacity;}public List getList() {return list;}// 构造函数,为仓库容量赋值protected Store(int capacity) {this.capacity = capacity;}
}

Producer生产者类

public class Producer implements Runnable{
​//仓库private Store store;
​//构造方法,实例化仓库public Producer(Store store) {this.store = store;}
​@Overridepublic void run() {while (true){produce();}}
​private synchronized void produce() {// 仓库未满,生产商品,唤醒消费者if (store.getList().size() <store.getCapacity()) {// 生产商品store.getList().add(new Object());// 唤醒消费者notifyAll();System.out.println(String.format("%s,生产了一件商品,仓库商品数为%d,唤醒消费者",Thread.currentThread().getName(),store.getList().size()));// 休眠try {Thread.sleep(1000);} catch (InterruptedException e) {e.printStackTrace();}}// 仓库已满,休眠,等待被唤醒else {try {System.out.println(String.format("仓库已满,%s,休眠",Thread.currentThread().getName()));wait(3000);} catch (InterruptedException e) {e.printStackTrace();}}}
}

Consumer消费者类

public class Consumer implements Runnable{//仓库private Store store;
​//构造方法,实例化仓库public Producer(Store store) {this.store = store;}
​@Overridepublic void run() {while (true){consume();}}
​private synchronized void consume() {// 仓库不为空,消费商品,唤醒生产者if (store.getList().size() > 0) {// 消费商品store.getList().remove(0);// 唤醒生产者notifyAll();System.out.println(String.format("%s,消费了一件商品,仓库商品数为%d,唤醒生产者",Thread.currentThread().getName(),store.getList().size()));// 睡眠try {Thread.sleep(1000);} catch (InterruptedException e) {e.printStackTrace();}}// 仓库为空,休眠,等待被唤醒else {try {System.out.println(String.format("仓库为空,%s,休眠",Thread.currentThread().getName()));wait(3000);} catch (InterruptedException e) {e.printStackTrace();}}}
}

        Test测试类

public class Test {public static void main(String[] args) {//实例化新建仓库对象,设置仓库的容量Store store = new Store(2);//实例化生产者对象Producer producer = new Producer(store);//实例化消费者对象Consumer consumer = new Consumer(store);
​//创建生产者线程new Thread(producer,"生产者1").start();new Thread(producer,"生产者2").start();//创建消费者线程new Thread(consumer,"消费者1").start();new Thread(consumer,"消费者2").start();}
}

http://www.dtcms.com/wzjs/404885.html

相关文章:

  • 类似情侣空间的网站开发产品网络营销分析
  • 游戏网站哪个好百度关键词优化软件排名
  • crm客户管理系统 项目宁波网站建设优化企业
  • 义乌市建设局官方网站谷歌seo搜索
  • 阿里巴巴企业邮箱登录入口seo问答
  • 用vis做的简单网站昆山优化外包
  • 建站助手网站指数查询
  • 杭州 企业门户网站建设百度推广账号怎么申请
  • 东莞建站模板搭建生成关键词的软件
  • 学校建设外文网站情况网站推广优化教程
  • 酒店网站建设因素竞价推广怎么样
  • wordpress全站使用cdn搜索关键词排名推广
  • 重庆建设网站哪个好网站快速排名上
  • 做视频网站用什么模板长沙免费建站网络营销
  • 个人网站如果做西安网
  • 互动网站开发快速建站教程
  • 网站用户体验度seo优化外链平台
  • 网站建设合同是委托合同还是承揽合同精准拓客软件哪个好
  • 网站建设新手教程旺道seo
  • 网站热力图怎么做外包公司到底值不值得去
  • 网页设计网站页面搜索的代码网站免费制作平台
  • 做的网站是怎么被收录电商网站
  • 网站建设的公司资质百度信息流广告代理
  • 服装网站建设的利益分析谷歌搜索排名规则
  • 凉山西昌网站建设嘉兴seo外包平台
  • 做母婴用品的网站有哪些来宾seo
  • 做辅食网站山西seo排名厂家
  • 哪个网站做初中作业湖州seo排名
  • 广告插件wordpress移动端windows优化大师有用吗
  • 宝鸡网站建设东东云南省最新疫情情况