java多线程过桥问题_(java)农夫过桥问题
();
beforeCrossing.add(new Goods(rabbitName));
beforeCrossing.add(new Goods(cabbageName));
beforeCrossing.add(new Goods(wolfName));
while (!isSuccess) {
Goods goods1 = beforeCrossing.getFirst();
System.out.println(goods1.getGoodsName() + " 被取走了");
beforeCrossing.removeFirst();
if (beforeCrossing.isEmpty()) {
afterCrossing.addLast(goods1);
isSuccess = true;
System.out.println("全部移动完毕!");
} else {
Iteratorit = beforeCrossing.iterator();
Goods[] beforeCro = new Goods[2];
for (int i = 0; it.hasNext(); i++) {
beforeCro[i] = it.next();
System.out.println(beforeCro[i].getGoodsName() + " 留了下来");
}
if (isFriendly(beforeCro[0], beforeCro[1])) {
if (afterCrossing.isEmpty()) {
afterCrossing.addLast(goods1);
System.out.println(goods1.getGoodsName() + " 被成功的放到了对岸");
} else {
Goods goods2 = afterCrossing.getFirst();
if (isFriendly(goods1, goods2)) {
afterCrossing.addLast(goods1);
System.out.println(goods1.getGoodsName() + " 被成功的放到了对岸");
} else {
beforeCrossing.addLast(goods2);
afterCrossing.removeFirst();
System.out.println(goods1.getGoodsName() + " 与 "
+ goods2.getGoodsName() + "并不和睦 于是把 " + goods2.getGoodsName()
+ "带了回来 并将 " + goods1.getGoodsName() + " 留了下来");
}
}
} else {
beforeCrossing.addLast(goods1);
System.out.println("很可惜 留下来的两个东西并不和睦 于是 " + goods1.getGoodsName()
+ " 又被放了回去");
}
}
}
}
}
// 货物类
class Goods {
// 货物名称
private String goodsName;
// 默认构造方法
public Goods(String goodsName) {
this.goodsName = goodsName;
}
// 获得货物名称
public String getGoodsName() {
return goodsName;
}
}
java多线程过桥问题_(java)农夫过桥问题相关推荐
- java多线程编程同步方法_实践【Java多线程编程核心技术】系列:同步方法造成的无限等待...
本文实践来自于[Java多线程编程核心技术]一书! 同步方法容易造成死循环,如-- 类Service.java: package service; public class Service { syn ...
- java多线程实现电梯_面对对象第二单元总结 - 电梯(java多线程)
概述 刚刚过去的oo第二单元主要是来训练我们java多线程设计. 借助电梯这个载体,逐步深入,线程的信息交互,控制也随之复杂. 尽管,我本单元成绩不是很好看,但是,确实学到了不少东西. 下面,我就借助 ...
- java多线程基础视频_【No996】2020年最新 Java多线程编程核心基础视频课程
01.课程介绍.mp4 02.多线程编程基础-进程与线程.mp4 03.多线程编程基础-使用多线程-继承Thread类.mp4 04.多线程编程基础-使用多线程-实现Runnable接口.mp4 05 ...
- java 多线程不安全_多线程并发为什么不安全
一.线程安全定义 定义: 多个线程访问同一个对象时,如果不用考虑这些线程在运行时环境下的调度和交替执行,也不需要进行额外的同步,或者在调用方进行任何其他操作,调用这个对象的行为都可以获得正确的结果 ...
- java多线程图片压缩包_年轻人不讲武德,竟然还搞不懂JVM?求你们来看阿里Java开发岗的招聘要求吧!...
最近有很多小伙伴吃了蚂蚁金服上市的酸柠檬,觉得马爸爸说的福报还是存在的.有人问我,进阿里到底难不难? 拜托,一画也没进去,我怎么知道? 但是,本着刨根问底的精神,小天搜索了很多阿里Java开发岗位的招 ...
- java 多线程数据分发_使用Java多线程实现任务分发
多线程下载由来已久,如 FlashGet.NetAnts 等工具,它们都是依懒于 HTTP 协议的支持(Range 字段指定请求内容范围),首先能读取出请求内容 (即欲下载的文件) 的大小,划分出若干 ...
- java多线程 注意事项_多线程使用及注意事项
1.并行和并发的区别 2.多线程(高并发编程)的优点 3.多线程程序需要注意事项 4.线程的启动与安全中止 5.怎么安全中止线程(interrupt()) 并行和并发的区别: 一个是同时执行,一个是交 ...
- java 多线程 卖票_编写一个Java 多线程程序,完成三个售票窗口同时出售20张票(如下图所示);...
编写一个Java 多线程程序,完成三个售票窗口同时出售20张票(如下图所示); 程序分析:(1)票数要使用同一个静态值: (2)为保证不会出现卖出同一个票数,要java多线程同步锁. 设计思路: (1 ...
- java多线程与并发_漫画 | Java多线程与并发(一)
1.什么是线程? 2.线程和进程有什么区别? 3.如何在Java中实现线程? 4.Java关键字volatile与synchronized作用与区别? volatile修饰的变量不保留拷贝,直接访问主 ...
- java多线程互斥锁_浅谈Java多线程互斥锁
为了解决竞争条件带来的问题,我们可以对资源上锁.多个线程共同读写的资源称为共享资源,也叫临界资源.涉及操作临界资源的代码区域称为临界区(Critical Section).同一时刻,只能有一个线程进入 ...
最新文章
- 纽约时报:华为大举挺进美国市场
- 银行系普惠和小贷系普惠,哪个贷款更靠谱?
- 【蓝桥杯官网试题 - 算法提高 】P0404(模拟)
- Flask项目--预防csrf攻击原理
- L-BFGS算法/Broyden族/BFGS算法/阻尼牛顿法的Python实现代码
- Web前后端笔记-vue封装http请求添加signature及后端(Java)解析并验证
- 计算机专业还用考计算机等级考试吗,计算机计算与软件考试-计算机毕业相当于全国计算机等级考试几级?我 – 手机爱问...
- cmd 笔记(随时补充)
- 【5G通信】基于matlab 5G通信新型多载波技术GFDM【含Matlab源码 106期】
- iphone手机投射到电脑的过程详解
- ol3 结构图 仅限ol.source.Source
- 用计算机的拓展活动总结,计算机学院心理健康节素质拓展活动圆满结束
- svg 地图_一秒带你制作出全国各省市区县地图
- Fabled Rooks UVA - 11134(题意+思路+题解)
- Java语言程序设计数据结构基础篇第11版6.31(金融应用:信用卡号的合法性检验)信用卡号遵循某种模式。一个信用卡号必须是13-16位的整数 (java)
- WAF——web安全及web应用防火墙
- vue watch使用了immediate之后,handler的this指向问题
- 最近影讯api数据库整合分享
- 欧姆龙CP1H+CIF11与海利普变频器modbus通讯
- linux的ib网卡驱动安装,linux安装IB驱动方法
热门文章
- cad中简单流程图制作_如何制作流程图,word快速生成流程图技巧
- 明朝后期,翰林学士公鼐执教东宫,时任礼部侍郎
- 一种技能的形成有哪些阶段?
- 投资理财-家和万事兴
- python是什么意思中文、好学吗-python好学吗
- 上海交通大学python实验七答案_20192310 实验八《数据结构与面向对象程序设计》实验报告...
- 计算机网络组成原理——基本概念
- 网络监测机器人 设备自动监测软件c#
- 【Python黑科技】tkinter库实战“贪吃蛇”小游戏(保姆级图文+实现代码)
- 随身理财专家“挖财”推iPad应用,新增帐号对比功能