();

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)农夫过桥问题相关推荐

  1. java多线程编程同步方法_实践【Java多线程编程核心技术】系列:同步方法造成的无限等待...

    本文实践来自于[Java多线程编程核心技术]一书! 同步方法容易造成死循环,如-- 类Service.java: package service; public class Service { syn ...

  2. java多线程实现电梯_面对对象第二单元总结 - 电梯(java多线程)

    概述 刚刚过去的oo第二单元主要是来训练我们java多线程设计. 借助电梯这个载体,逐步深入,线程的信息交互,控制也随之复杂. 尽管,我本单元成绩不是很好看,但是,确实学到了不少东西. 下面,我就借助 ...

  3. java多线程基础视频_【No996】2020年最新 Java多线程编程核心基础视频课程

    01.课程介绍.mp4 02.多线程编程基础-进程与线程.mp4 03.多线程编程基础-使用多线程-继承Thread类.mp4 04.多线程编程基础-使用多线程-实现Runnable接口.mp4 05 ...

  4. java 多线程不安全_多线程并发为什么不安全

    一.线程安全定义 ​定义: ​多个线程访问同一个对象时,如果不用考虑这些线程在运行时环境下的调度和交替执行,也不需要进行额外的同步,或者在调用方进行任何其他操作,调用这个对象的行为都可以获得正确的结果 ...

  5. java多线程图片压缩包_年轻人不讲武德,竟然还搞不懂JVM?求你们来看阿里Java开发岗的招聘要求吧!...

    最近有很多小伙伴吃了蚂蚁金服上市的酸柠檬,觉得马爸爸说的福报还是存在的.有人问我,进阿里到底难不难? 拜托,一画也没进去,我怎么知道? 但是,本着刨根问底的精神,小天搜索了很多阿里Java开发岗位的招 ...

  6. java 多线程数据分发_使用Java多线程实现任务分发

    多线程下载由来已久,如 FlashGet.NetAnts 等工具,它们都是依懒于 HTTP 协议的支持(Range 字段指定请求内容范围),首先能读取出请求内容 (即欲下载的文件) 的大小,划分出若干 ...

  7. java多线程 注意事项_多线程使用及注意事项

    1.并行和并发的区别 2.多线程(高并发编程)的优点 3.多线程程序需要注意事项 4.线程的启动与安全中止 5.怎么安全中止线程(interrupt()) 并行和并发的区别: 一个是同时执行,一个是交 ...

  8. java 多线程 卖票_编写一个Java 多线程程序,完成三个售票窗口同时出售20张票(如下图所示);...

    编写一个Java 多线程程序,完成三个售票窗口同时出售20张票(如下图所示); 程序分析:(1)票数要使用同一个静态值: (2)为保证不会出现卖出同一个票数,要java多线程同步锁. 设计思路: (1 ...

  9. java多线程与并发_漫画 | Java多线程与并发(一)

    1.什么是线程? 2.线程和进程有什么区别? 3.如何在Java中实现线程? 4.Java关键字volatile与synchronized作用与区别? volatile修饰的变量不保留拷贝,直接访问主 ...

  10. java多线程互斥锁_浅谈Java多线程互斥锁

    为了解决竞争条件带来的问题,我们可以对资源上锁.多个线程共同读写的资源称为共享资源,也叫临界资源.涉及操作临界资源的代码区域称为临界区(Critical Section).同一时刻,只能有一个线程进入 ...

最新文章

  1. 纽约时报:华为大举挺进美国市场
  2. 银行系普惠和小贷系普惠,哪个贷款更靠谱?
  3. 【蓝桥杯官网试题 - 算法提高 】P0404(模拟)
  4. Flask项目--预防csrf攻击原理
  5. L-BFGS算法/Broyden族/BFGS算法/阻尼牛顿法的Python实现代码
  6. Web前后端笔记-vue封装http请求添加signature及后端(Java)解析并验证
  7. 计算机专业还用考计算机等级考试吗,计算机计算与软件考试-计算机毕业相当于全国计算机等级考试几级?我 – 手机爱问...
  8. cmd 笔记(随时补充)
  9. 【5G通信】基于matlab 5G通信新型多载波技术GFDM【含Matlab源码 106期】
  10. iphone手机投射到电脑的过程详解
  11. ol3 结构图 仅限ol.source.Source
  12. 用计算机的拓展活动总结,计算机学院心理健康节素质拓展活动圆满结束
  13. svg 地图_一秒带你制作出全国各省市区县地图
  14. Fabled Rooks UVA - 11134(题意+思路+题解)
  15. Java语言程序设计数据结构基础篇第11版6.31(金融应用:信用卡号的合法性检验)信用卡号遵循某种模式。一个信用卡号必须是13-16位的整数 (java)
  16. WAF——web安全及web应用防火墙
  17. vue watch使用了immediate之后,handler的this指向问题
  18. 最近影讯api数据库整合分享
  19. 欧姆龙CP1H+CIF11与海利普变频器modbus通讯
  20. linux的ib网卡驱动安装,linux安装IB驱动方法

热门文章

  1. cad中简单流程图制作_如何制作流程图,word快速生成流程图技巧
  2. 明朝后期,翰林学士公鼐执教东宫,时任礼部侍郎
  3. 一种技能的形成有哪些阶段?
  4. 投资理财-家和万事兴
  5. python是什么意思中文、好学吗-python好学吗
  6. 上海交通大学python实验七答案_20192310 实验八《数据结构与面向对象程序设计》实验报告...
  7. 计算机网络组成原理——基本概念
  8. 网络监测机器人 设备自动监测软件c#
  9. 【Python黑科技】tkinter库实战“贪吃蛇”小游戏(保姆级图文+实现代码)
  10. 随身理财专家“挖财”推iPad应用,新增帐号对比功能