中国简单快捷的免费行业信息发布平台
·手机版 ·注册 ·登录 ·会员中心 ·忘了密码 ·导航 ·帮助
名站在线LOGO
·设 为 首 页
·收 藏 本 站
·新 站 登 录
网站首页
|
行业供求
|
行业产品
|
行业公司
|
站内检索
|
行业资讯
|
网站导航
|
链接交换
|
流量交换
|
网友收藏
您当前的位置: 首页 > 行业供求信息 > 信息展示



成都Java培训怎么样?成都Java开发面试题分享。

信息介绍:  
常用的同步方法是采用信号或加锁机制,确保资源在任意时刻至多被一个线程访问。Java语言在多线程编程上实现了完全对象化,提供了对同步机制的良好支持。



图片描述(*多50字)


在Java中一共有四种方法支持同步,其中前三个是同步方法,一个是管道方法。管道方法不建议使用,阻塞队列方法在问题4已有描述,现只提供前两种实现方法。

- wait()/notify()方法

- await()/signal()方法

- BlockingQueue阻塞队列方法

- PipedInputStream/PipedOutputStream

一、生产者类:

```

public class Producer extends Thread { // 每次生产的产品数量

private int num;

// 所在放置的仓库

private Storage storage;

// 构造函数,设置仓库

public Producer(Storage storage) {

this.storage = storage;

}

// 线程run函数

public void run() {

produce(num);

}

// 调用仓库Storage的生产函数

public void produce(int num) {

storage.produce(num);

}

public int getNum() {

return num;

}

public void setNum(int num) {

this.num = num;

}

public Storage getStorage() {

return storage;

}

public void setStorage(Storage storage) {

this.storage = storage;

}

}

```

二、消费者类:

```

public class Consumer extends Thread { // 每次消费的产品数量

private int num;

// 所在放置的仓库

private Storage storage;

// 构造函数,设置仓库

public Consumer(Storage storage) {

this.storage = storage;

}

// 线程run函数

public void run() {

consume(num);

}

// 调用仓库Storage的生产函数

public void consume(int num) {

storage.consume(num);

}

// get/set方法

public int getNum() {

return num;

}

public void setNum(int num) {

this.num = num;

}

public Storage getStorage() {

return storage;

}

public void setStorage(Storage storage) {

this.storage = storage;

}

}

```

仓库类:(wait()/notify()方法)

```

public class Storage { // 仓库**存储量

private final int MAX_SIZE = 100;

// 仓库存储的载体

private LinkedList list = new LinkedList();

// 生产num个产品

public void produce(int num) {

// 同步代码段

synchronized (list) {

// 如果仓库剩余容量不足

while (list.size() + num > MAX_SIZE) {

System.out.print( 【要生产的产品数量】: + num);

System.out.println( 【库存量】: + list.size() +  暂时不能执行生产任务! );

try {

list.wait();// 由于条件不满足,生产阻塞

} catch (InterruptedException e) {

e.printStackTrace();

}

}

// 生产条件满足情况下,生产num个产品

for (int i = 1; i <= num; ++i) {

list.add(new Object());

}

System.out.print( 【已经生产产品数】: + num);

System.out.println( 【现仓储量为】: + list.size());

list.notifyAll();

}

}

// 消费num个产品

public void consume(int num) {

// 同步代码段

synchronized (list) {

// 如果仓库存储量不足

while (list.size() < num) {

System.out.print( 【要消费的产品数量】: + num);

System.out.println( 【库存量】: + list.size() +  暂时不能执行生产任务! );

try {

// 由于条件不满足,消费阻塞

list.wait();

} catch (InterruptedException e) {

e.printStackTrace();

}

}

// 消费条件满足情况下,消费num个产品

for (int i = 1; i <= num; ++i) {

list.remove();

}

System.out.print( 【已经消费产品数】: + num);

System.out.println( 【现仓储)量为】: + list.size());

list.notifyAll();

}

}

// get/set方法

public LinkedList getList() {

return list;

}

public void setList(LinkedList list) {

this.list = list;

}

public int getMAX_SIZE() {

return MAX_SIZE;

}

}

```

仓库类:(await()/signal()方法)

```

public class Storage { // 仓库**存储量

// 仓库**存储量

private final int MAX_SIZE = 100;

// 仓库存储的载体

private LinkedList list = new LinkedList();

// 锁

private final Lock lock = new ReentrantLock();

// 仓库满的条件变量

private final Condition full = lock.newCondition();

// 仓库空的条件变量

private final Condition empty = lock.newCondition();

// 生产num个产品

public void produce(int num) {

// 获得锁

lock.lock();

// 如果仓库剩余容量不足

while (list.size() + num > MAX_SIZE) {

System.out.print( 【要生产的产品数量】: + num);

System.out.println( 【库存量】: + list.size() +  暂时不能执行生产任务! );

try {

// 由于条件不满足,生产阻塞

full.await();

} catch (InterruptedException e) {

e.printStackTrace();

}

}

// 生产条件满足情况下,生产num个产品

for (int i = 1; i <= num; ++i) {

list.add(new Object());

}

System.out.print( 【已经生产产品数】: + num);

System.out.println( 【现仓储量为】: + list.size());

// 唤醒其他所有线程

full.signalAll();

empty.signalAll();

// 释放锁

lock.unlock();

}

// 消费num个产品

public void consume(int num) {

// 获得锁

lock.lock();

// 如果仓库存储量不足

while (list.size() < num) {

System.out.print( 【要消费的产品数量】: + num);

System.out.println( 【库存量】: + list.size() +  暂时不能执行生产任务! );

try {

// 由于条件不满足,消费阻塞

empty.await();

} catch (InterruptedException e) {

e.printStackTrace();

}

}

// 消费条件满足情况下,消费num个产品

for (int i = 1; i <= num; ++i) {

list.remove();

}

System.out.print( 【已经消费产品数】: + num);

System.out.println( 【现仓储)量为】: + list.size());

// 唤醒其他所有线程

full.signalAll();

empty.signalAll();

// 释放锁

lock.unlock();

}

// set/get方法

public int getMAX_SIZE() {

return MAX_SIZE;

}

public LinkedList getList() {

return list;

}

public void setList(LinkedList list) {

this.list = list;

}

}

信息明细:  
名 称:成都Java培训怎么样?成都Java开发面试题分享。
类 型: 供应
类 别:教育考试 其他培训
地 区: 四川 成都
用 户: 13880285361
日 期: 2019-02-25 15:16:40
发布IP: 182.149.161.28

[参考图片]

联络方式:  
http://cd.mobiletrain.org/


友情提示:
    信息由用户自行发布,采用请谨慎,我们鼓励您当面交易。如有不符合法规或造成侵权,请及时通知本站更正或删除,具体联系方式见页面底部联系我们。名站在线只为传递信息,我们不做任何双方证明,也不承担任何法律责任。 信息转载,请标明来源于www.fwol.cn ,谢谢。


当前页在本站[名站在线]7天内点击次数(点击次数为零的日期不显示):
总量  05/31             
           

信息评估: (还没有网友对该信息作出评估,你想为该信息提供第一个评估吗?) 
信息较差
信息合格
信息良好
信息优秀


其它相似链接:
安徽纸箱订做价格合理安徽纸箱加工_天智纸箱厂
安徽纸箱订做价格合理安徽纸箱加工_天智纸箱厂合肥天智包装材料有限公司13329012958专业制作生产各种规格纸箱,纸箱包装,彩印纸箱,包装纸盒,纸包装箱,瓦楞纸箱,重型包装纸箱等。致力于包装产业的变革,用国内专业的生产设备、国内专业的生产工艺、国内专业的理理念和良好的客户服务,全力打造中国包装行业的专业品牌。我们始终坚持“质量是企业的生命,效益是我们的追求”经营理念,秉持“高质低价、**准时、客户至上”的宗...

质量好的台球桌在哪有卖甘肃台球桌
质量好的台球桌在哪有卖甘肃台球桌 英超体育主营的台球桌品种规格齐全、价格合理、质量优良,产品的各项指标均达到符合国台球用品的质量标准,是以优质环保材料加工制成的,不论是从精心选材、生产、还是包装、物流等程序,无不倾注我们的全心力,深受广大需求对象的好评,可支持国内贸易交易。 质量可靠的品质造就诚信**的企业,公司销的台球桌主要用于健康娱乐,产品种类齐全,外观新颖,结构设计合理,可满足需求对象等...

安装膜结构看台优选鸿鑫膜结构 膜结构体育场看台
安装膜结构看台优选鸿鑫膜结构 膜结构体育场看台 青州鸿鑫膜结构工程有限公司建立于2017-10-30,发展至今,产品不断推陈出新,坚持技术创新,诚信经营,是一以销为主营方向的有限责任公司。公司注重膜结构看台产品开发,并符合国标准,产品畅销国内各地,在全国地区都有良好市场反响。鸿鑫膜结构愿与有志之士共同携手缔造传世品牌,诚邀加盟,联系人张经理,联系热线13455617770 鸿鑫膜结构 成立至今,全体员工一直秉承 “诚信...

污水处理厂提标改造哪家专业嘉兴污水处理
污水处理厂提标改造哪专业嘉兴污水处理 深圳市清泉水业股份有限公司创建于1995-02-27,是一专门从事污水处理设备的有限责任公司。公司业务覆盖广阔,经营规模不断扩大,承建项目广,始终秉承诚信为先,质量为本的企业宗旨,为广大的需求群体提供优质的污水处理厂提标改造,依照专业化、规范化、协同作战的原则,在全国留下了辉煌业绩。 经多年发展,清泉水业不断成长壮大并初具规模,若需要我公司的污水处理厂提标改造服务,...

邢台新河回转式清污机推荐_新河回转式清污机
邢台新河回转式清污机推荐_新河回转式清污机 启闭机械产品质量可靠,价格公道,每一个出库的回转式清污机都要经过严格质量检测,达到质量标准才可以出厂。高标准,精细化,零缺陷,是企业对职工的基本要求。当需求群体与我公司签订订单后,您需要注意我司指定的付款方式为在线支付;现金支付,临时有变动的情况下,我们会及时与您取得联系。 优质的服务是客户的需求,而满足客户的需求是我们不变的宗旨。启闭机械为了客户能够...



相关评论:  
(欢迎网友发表评论,请注意网络文明)
(不支持 HTML 显示,请勿发HTML代码)
(评论需审核后才能显示)



本站推荐:
**潮汐表
舟山税收优惠政策-舟山税
出生**天的小脚掌-中国
学中在线-学子园地-知识
大理石复合板_大理石复合
手绘教程 - 优优教程网
武汉秦雕数控提供有品质的
交通标志标牌
上海质量好的欧匠电烤鱼炉
热门挖沙淘金船动态贵州挖
冰箱吴江松下冰箱售后维修
滁州美的冰箱维修电话准时
太原小天鹅洗衣机售后服务
鱼块贴体式真空包装机 原
深圳迪能激光设备有限公司
沈阳市通有泰管件加工厂
深圳市万航智能科技有限公
锦州通用皮毛皮革机械有限
KTV沙发架厂家
余姚慈溪氟硅弹性工厂地坪
疯狂甩卖1412-PP2
热敏电阻温度测试的构成
小区干洗店利润怎么样
西城区安装维修车库门厂家
西青区安装厂房抗风卷帘门
新站登录--网站简介--流量交换--名站收藏夹--广告服务--友情链接--免责声明--联系我们--意见建议--违法举报--侵权举报
Copyright 2005-2024 名站在线[fwol.cn]版权所有 经营许可证:粤ICP备17047754号