博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Runnable接口创建线程,多线程,龟兔赛跑问题,IDEA中方法体的折叠,最重要的第二种线程创建方式!!!
阅读量:3943 次
发布时间:2019-05-24

本文共 1767 字,大约阅读时间需要 5 分钟。

1.IDEA中如何折叠方法体

file---->setting------>code folding------>勾选method bodies------>ok保存

2.通过第二种线程创建方式(实现Runnable),创建一个对象执行多个线程代码演示

thread中的sleep方法可以使线程延时:

在这里插入图片描述
案例说明:
在这里插入图片描述
核心是Thread类中有个方法,可以接受Runnable接口的参数,然后调用start方法来启动执行run方法中的代码。Thread类中有start方法,而Runnable接口中有run方法
在这里插入图片描述

龟兔赛跑具体代码如下:

package duoxiancheng;//两个进程是同时执行的,最后谁赢结果是随机的,但是可以通过Thread中的sleep方法使兔子线程进行短暂的休息延迟,使乌龟线程赢得比赛//继承实现Runnable,alt+insert快捷键继承实现public class Race implements Runnable{
//定义变量记录胜利者 private static String winner; //重写run方法 public void run() {
for (int i = 0; i <=100; i++) {
//100.for快捷键 //两个进程是同时执行的,最后谁赢结果是随机的,但是可以通过Thread中的sleep方法使兔子线程进行短暂的休息延迟,使乌龟线程赢得比赛 if(Thread.currentThread().getName().equals("兔子")&&i%10==0) {
//注意判断是== try {
Thread.sleep(1); } catch (InterruptedException e) {
e.printStackTrace(); } } //判断比赛是否结束 boolean flag=gameover(i); //如果比赛结束了,就停止进程 if(flag){
break; } System.out.println(Thread.currentThread().getName()+"--->跑了"+i+"步"); } } //判断是否完成比赛,i是否达到100 private boolean gameover(int steps){
//判断是否有胜利者 if(winner!=null){
//i已经大于100了,static为类的静态变量,故可以直接使用,非静态方法可以调用静态变量,因为静态方法和变量随类一起加载 return true; }{
if(steps>=100) {
winner = Thread.currentThread().getName(); System.out.println("winner is " + winner); return true; } } return false; } public static void main(String[] args) {
Race race = new Race(); new Thread(race,"兔子").start(); new Thread(race,"乌龟").start(); }}

转载地址:http://qwnwi.baihongyu.com/

你可能感兴趣的文章
openstack&ceph
查看>>
ME60 双机热备 奇偶mac负载分担
查看>>
oracle11G安装en
查看>>
关于丢失或者损坏etc/fstab文件后
查看>>
VMware-ESXi-6.5 集成第三方驱动方法
查看>>
Oracle RAC on vSphere 安装手册v2
查看>>
V2V迁移
查看>>
BFD
查看>>
docker网络
查看>>
锐捷交换机的多对多镜像口
查看>>
Linux系统修改编码
查看>>
word文档不能显示图片的处理
查看>>
linux的多桌面环境Xephyr
查看>>
初探debian桌面的管理启动
查看>>
七层协议图
查看>>
华为交换机作为AC的条件
查看>>
禁用Ubuntu 15.04登录界面显示客人会话(简单-实用)
查看>>
linux X下安装的软件
查看>>
Linux监测某一时刻对外的IP连接情况
查看>>
CentOS7 最小环境安装Jumpserver 1.0版脚本
查看>>