网站首页 行业供求 行业产品 行业公司
行业资讯 行业网站 链接交换 网友收藏
行业供求 >> 信息展示:
成都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 ,谢谢。

其它相似链接:
福建好的车内空气污染治理公司晋江车内污染治理
福建好的车内空气污染治理公司晋江车内污染治理 福建纳琦提供的车内空气污染治理在福建省受到广大有车一族的青睐,对客户的忠实承诺和保持良好的客户伙伴关系是我们成功的基础。以可以电话预约为服务特色,我们会通过我司专有的方式为您提供优质的服务。 车内空气污染治理值得信赖,车内空气污染治理新闻,车内空气污染治理,车内空气污染治理有多好 以下是详细信息 服务标准直至客户满意为止 服务周期一个服务周期 ...

陇南高考素描培训|信誉好的艺术培训学校机构
陇南高考素描培训|信誉好的艺术培训学校机构 兰州培蕾美术培训学校位于兰州市城关区五泉山南路3号教学楼6楼,创办于2003-08-06,以基础素质与专业素质并重培养的理念,创新人才培养模式,丰富教学文化,努力培养适应社会需要。我们专注于艺术培训学校,深受广大学员好评。联系电话15379018282,联系人高老师 培蕾美术培训学校不断完善教学体系,理论与实践结合,做到学以致用,以专业、尽责为服务特色,真正的做到以学员为本,...

取暖风机价格,价格合理的取暖风机供应
取暖风机价格,价格合理的取暖风机供应 青州市鑫达炉具厂成立于2009-10-20,位于青州市益都办事处刘早,屹立于锅炉和锅炉配件行业领域已多年,是一个专业生产取暖风机的个体经营,以“**的管理,**的产品”为宗旨,努力开拓,在机械五金行业创立了辉煌。联系电话13964672661。 鑫达炉具实力雄厚,常年以不锈钢材质的取暖风机产品生产为主,其主要用途是取暖、排风等用途。产品型号多种,其中型号为XD较受与畅销,重量&am...

名企推荐品质可靠的骆驼蓄电池 提供骆驼蓄电池
名企推荐品质可靠的骆驼蓄电池 提供骆驼蓄电池 厦门协铭贸易有限公司坐落在福建厦门湖里区禾东路929号,自创办以来,一直致力于各类电池的研发、生产与销售,是各种标准骆驼蓄电池的专业供应厂家,产值达每年500万元左右。公司技术实力雄厚,产品质量可靠,是你值得信赖的有限责任公司。联系电话13606908065 我们一直秉承“为客户创造价值”的宗旨,坚持“全力以赴,客户至上”的工作准则,确保为需求群体提供优质产品和系统...

山西创伟房地产怡海花苑公司推荐 太原创伟房地产
山西创伟房地产怡海花苑公司推荐 太原创伟房地产 山西创伟房地产开发有限公司张涛18735104507位于山西省太原市迎泽区柳巷南路20号2-1-20号,集山西创伟房地产怡海花苑与相关配套服务为一体。经过有多年的风风雨雨,培养了一支技术过硬,工艺精湛的施工队伍及高素质现场施工管理技术骨干,在山西创伟房地产怡海花苑中实力可靠。 我公司一贯坚持“客户满意和信赖是我们永恒的追求”的企业发展宗旨,牢固树立“以质取胜,以信求誉...


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

本站推荐:
中国花木大世界
洒水车
安庆网络公司
鑫威玉米收割机
石英砂滤料
贵州|贵州**招聘信息|
天天看电影网|**电影|
得优人才-得优猎头-提供
马克思主义学院工作网
绿色直播 - 体育直播|
三个年代-合肥APP开发
莆田地区销售新品盛源佛像
黑龙江鳍片式LED_质量
气液增压缸***,江苏优
蓝功厨具提供好的制冷设备
松下南通松下空调售后维修
悉心钻研从零开始霹雳转盘
小体积AC-DC28V电
PFA阀门进行控制半导体
西安砺研再生资源科技有限
泊头市新益星压瓦机械厂
山西艺林轩教育科技有限公
宅速美装饰工程集团有限公
飞企智慧园区高速发展
养猪发酵床专用益生菌发酵
价格合理的汇盈金服_汇盈
安徽斜筛式固液分离机厂家
深圳东芝洗衣机售后维修电
南开区定制电动铁艺大门,

电脑版

Copyright 2005-2024 名站在线[fwol.cn]版权所有
经营许可证:粤ICP备17047754号