第1关:创建线程

任务描述

本关任务:创建一个Java线程执行特定任务。

编程要求

请仔细阅读右侧代码,根据方法内的提示,在Begin - End区域内进行代码补充,具体任务如下:

  • 使用继承Thread类的方式创建一个名为 ThreadClassOne 的类,重写的run方法需要实现输出0-10之间的奇数,输出结果如下: 1 3 5 7 9

  • 使用实现Runnable接口的方式创建一个名为ThreadClassTwo的类,重写run方法,编写start方法,run方法需要实现打印0-10之间的偶数,输出结果如下: 0 2 4 6 8 10

测试说明

因为需要完成两个文件的编写,所以你需要在右侧进行文件切换。

平台会判断你定义的类是否是一个线程类,并且调用run方法,判断是否达到预期的输出结果。

通关代码

package step1;//请在此添加实现代码
/********** Begin **********/
public class ThreadClassOne extends Thread{public int i=0;public ThreadClassOne(){super();}public void run(){for(i=0;i<10;i++){if(i%2==1)System.out.print(i+" ");}}
}
/********** End **********/

第2关:使用 Callable 和 Future 创建线程

任务描述

本关任务:通过 CallableFuture 来创建线程。

编程要求

请仔细阅读右侧代码,根据方法内的提示,在Begin - End区域内进行代码补充,具体任务如下:

  • runThread(int num)函数中执行线程,创建Callable线程,Callable线程需要执行求第num项斐波那契数列的值,最后在runThread函数中获取Callable线程执行的结果,并打印输出。

斐波那契数列(Fibonacci数列) 这个数列从第3项开始,之后的每一项都等于它的前两项数字之和。 这个数列为: 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233,377,610,987,1597,2584,4181,6765,10946,17711,28657,46368........

测试说明

补充完代码后,点击测评,平台会对你编写的代码进行测试,当你的结果与预期输出一致时,即为通过。

通关代码

package step2;import java.util.concurrent.Callable;
import java.util.concurrent.FutureTask;public class Task {public void runThread(int num) {//请在此添加实现代码/********** Begin **********/// 在这里开启线程 获取线程执行的结果Callable callable = new ThreadCallable(num);FutureTask<Integer> futureTask = new FutureTask<>(callable);new Thread(futureTask).start();//开启线程try {Integer result = futureTask.get();System.out.println("线程的返回值为:" + result);} catch (Exception e) {e.printStackTrace();}/********** End **********/}
}//请在此添加实现代码
/********** Begin **********/
/* 在这里实现Callable接口及方法 */
class ThreadCallable implements Callable<Integer>{private int num;public ThreadCallable() {}public ThreadCallable(int num) {this.num = num;}public Integer call() throws Exception {int[] arr = new int[2];arr[0] = 1;arr[1] = 1;for (int i = 2; i < num; i++) {int tmp = arr[1];arr[1] = arr[0] + arr[1];arr[0] = tmp;}return arr[1];}
}
/********** End **********/

EduCoder Java高级特性 - 多线程基础(1)使用线程相关推荐

  1. 头歌Educoder——Java高级特性 - 多线程练习题

    文章目录 第1关:顺序输出 任务描述 相关知识(略) 编程要求 测试说明 代码示例 第2关:售票窗口 任务描述 相关知识(略) 编程要求 测试说明 代码示例 Station.java Task.jav ...

  2. 【头歌实训】Java高级特性 - 多线程基础(1)使用线程,使用 Callable 和 Future 创建线程

    任务描述 本关任务:通过 Callable 和 Future 来创建线程. 相关知识 从Java1.5版本开始,就提供了 Callable 和 Future 来创建线程,这种方式也是在Java程序员面 ...

  3. Java高级特性 - 多线程练习题

    第1关:顺序输出 任务描述 本关任务:利用多线程相关知识控制三个线程,依照先后顺序顺序输出. 相关知识(略) 编程要求 请仔细阅读右侧代码,在 Begin-End 区域内进行代码补充,使线程依照先后顺 ...

  4. 头歌Educoder——Java高级特性 - JDBC(上)

    第1关:JDBC连接数据库 任务描述 本关任务:使用jdbc连接数据库并完成创建数据库和创建表的操作. 相关知识 JDBC API提供以下接口和类: DriverManager:此类管理数据库驱动程序 ...

  5. Educoder–Java高级特性(第一章)- IO流【笔记+参考代码】

    Educoder–Java高级特性(第一章)- IO流[笔记+参考代码] 第一关 1.下列关于字节和字符的说法正确的是(BC) A.字节 = 字符 + 编码 B.字符 = 字节 + 编码 C.字节 = ...

  6. Educoder–Java高级特性(第二章)- 集合框架【笔记+参考代码】

    Educoder–Java高级特性(第二章)- 集合框架[笔记+参考代码] 第一关 编程要求 请仔细阅读右侧代码,根据方法内的提示,在Begin - End区域内进行代码补充,创建ArrayList集 ...

  7. Educoder -Java高级特性 - IO流 4关

    Educoder -Java高级特性 - IO流 第一关 第二关:本关任务:使用输入输出流读写文件. 请仔细阅读右侧代码,根据方法内的提示,在Begin - End区域内进行代码补充,具体任务如下: ...

  8. 【Java高级】多线程基础

    文章目录 1.jvm启动时的线程 2. 实现线程 2.1实现线程的第一种方式 2.2 实现线程第二种方法 3.线程生命周期 4.线程名字 5.线程的sleep 6.终止线程的睡眠 7.合理终止一个线程 ...

  9. EduCoder-JavaJava高级特性 - 多线程基础(1)实现代码以及相关知识点

    我是小康小白,一个平平无奇的Java小白.热爱有趣的文字,生活和远方. 第1关:创建线程 任务描述 本关任务:创建一个Java线程执行特定任务. 相关知识 不知道你有没有发现,截止目前,我们编写的代码 ...

最新文章

  1. 基于 Go 语言构建企业级的 RESTful API 服务
  2. 入选CVPR 2022!一举打败16个同类模型,视频超分比赛冠军算法!
  3. Linux内核移植之二:Kconfig分析
  4. java线程等待都完成_Java等待线程完成
  5. 高等数学下-赵立军-北京大学出版社-题解-练习10.4
  6. ViewSwitcher用法浅析
  7. 双十一,老板的电话该不该接?
  8. 在不确定的世界,如何应对风险
  9. 2.java运算符与逻辑控制
  10. Python web实时消息服务器后台推送技术方案---GoEasy
  11. 聊聊汽车智能化时代的ASIL
  12. 如何批量把照片设置统一尺寸?
  13. 【Duet display】Mac分屏神器
  14. 群雄当立,逐鹿分布(二)Paxos传说之败走拜占庭
  15. 用字节数组存放二维地图数据
  16. compiz在debian上的安装和使用
  17. 【OpenGL】glm库的配置
  18. 问道手游平民玩家什么职业好
  19. Sentinel-2(哨兵-2)L1C数据辐亮度(辐射定标)和TOA反射率的获取说明
  20. CDNow网站用户消费行为分析

热门文章

  1. 证书、根证书、CA、证书不受信任详解
  2. [转]Amit's Astar Page中译文
  3. SolidWorks2010常用快捷键
  4. oracle表删除重复数据,oracle单表删除重复数据
  5. python数据清洗实例_hive 的日志处理统计网站的 PV 、UV案例 与 给合 python的数据清洗数据案例...
  6. 如何将一张黑白图转为mask
  7. 网页观看视频的时候出现绿屏怎么解决
  8. unity3d广东麻将算法
  9. python游戏房间_冒险游戏问题,在房间之间移动Python
  10. x390拆机 升级内存和硬盘_iMac 2019 21.5寸 拆机升级内存和固态详细教程