尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

18 龟兔赛跑代码和callable的基础结构

18 龟兔赛跑代码和callable的基础结构
📅 发布时间:2026/6/20 11:32:44

18 龟兔赛跑代码和callable的基础结构

龟兔赛跑

public class RaceOfRT implements Runnable{private static String winner;//实现接口必须重写run方法,否则报错@Overridepublic void run(){//赢家判定规则:先达到100米//整个跑步的过程for (int i = 0; i <=100 ; i++) {//兔子睡觉 在50步的时候休息10ms//字符串的比较需要用equalsif(Thread.currentThread().getName().equals("兔子")&&i==50){try{Thread.sleep(10);}catch(InterruptedException e){e.printStackTrace();}}//获胜判定boolean flag = win(i);if(winner!=null){//退出循环break;}//跑步的过程System.out.println(Thread.currentThread().getName()+"跑了"+i+"米");}}//判断是否有人获胜//上面的函数不能内置判断函数,因为单个函数描述的是一个线程,而结果需要在多个线程之间进行比较//对每个线程内部的i进行大小比较,如果某线程的i达到了100,则判定其胜出//由于每个线程都要比较,所以当一个达到100的时候,其他的线程应当停止循环public boolean win(int i ){if(i==100&&winner==null) {winner =Thread.currentThread().getName();System.out.println(Thread.currentThread().getName()+"获胜。");return true;}else return false;}public static void main(String[] args) {//将对象实例化RaceOfRT r=new RaceOfRT();//新建线程将会直接执行run函数new Thread(r,"兔子").start();new Thread(r,"乌龟").start();}
}

实现callable接口

  1. 接口后需要加入返回值类型
  2. 重写的方法为call,返回值自定义,需要体现在类定义处
  3. 创建执行服务
  4. 提交执行
  5. 获取结果
  6. 关闭服务
public class callableTest implements Callable<ELemType>{@Overridepublic ElemType call(){return ElemType x;}public static void main(String[] args) {//创建对象/*此处每个线程都要创建一个对象,而runnable接口可以实现一个对象对应多个线程*/callableTest c1 = new callableTest();callableTest c2 = new callableTest();callableTest c3 = new callableTest();//创建执行服务ExecutorService s = Executors.newFixedThreadPool(3);//提交执行Future<ElemType> f1 = s.submit(c1);Future<ElemType> f2 = s.submit(c2);Future<ElemType> f3 = s.submit(c3);//获取结果ElemType e1 = f1.get();ElemType e2 = f2.get();ElemType e3 = f3.get();//...//关闭服务s.shutdownNow();}
}

好处

  1. 可以有返回值
  2. 可以抛出异常(在服务中利用自带的方法)

相关新闻

  • Day4表格中合并单元格
  • 2025年环保设备厂家推荐排行榜,废气处理设备,废水处理设备,噪音治理设备公司推荐,专业实力与环保方案深度解析
  • Unreal:如何在UE中实现SSH隧道,安全访问远程服务

最新新闻

  • 2026超声波滚焊机选型指南:从技术参数到厂商甄选的全流程攻略 - 速递信息
  • NVIDIA Profile Inspector完整指南:解锁200+隐藏设置,轻松优化显卡性能
  • 3分钟掌握终极IPTV播放源检测:告别频道失效的完整指南
  • 2025-2026年东坝改善新房推荐:五大项目口碑评测生态宜居防噪音干扰适用场景价格 - 品牌推荐
  • 2026 全国可报电大中专,不用线下上课,线上完成考核毕业 - cc江江
  • CANN/GE LLM-DataDist PullKvCache接口

日新闻

  • 信任的进化:技术实现详解——如何用JavaScript构建博弈论模拟器
  • Terrakube自定义工作流:如何集成OPA、Infracost等工具扩展IaC能力
  • grunt-concurrent快速入门:5分钟学会并行运行Grunt任务

周新闻

  • 3步解锁iOS设备:applera1n激活锁绕过完全指南
  • 39 2026 人工智能证书终极盘点,普通人选 AI 证书可以从这些方向入手
  • Redis 暴露公网有多危险?从端口检查到补救步骤

月新闻

  • 【总结】入门篇:50句话让你记住架构核心概念
  • WeChatMsg技术方案解析:实现Mac微信数据自主管理的完整解决方案
  • WeChatMsg:革新性微信数据备份方案,打造你的专属数字记忆库

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号