本文共 1767 字,大约阅读时间需要 5 分钟。
file---->setting------>code folding------>勾选method bodies------>ok保存
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/