线程实现

简介: 线程实现

1.定义一个实体类
实现callable接口

class Ract implements Callable{

private String name;//姓名
private long time;//延时时间
private boolean flag = true; // 标记
private int step = 0 ;//步数

public Ract(String name, long time) {
    super();
    this.name = name;
    this.time = time;
}

@Override
public Integer call() throws Exception {
    while(flag){//当标记为true的时候,会一直走
        Thread.sleep(time);//每隔多长时间走一步
        step ++ ;
    }
    return step;
}

创建主线程
public static void main(String args[]) throws InterruptedException, ExecutionException{

    //创建一个定长的线程池
    ExecutorService pool = Executors.newFixedThreadPool(2);
    
    Ract ract = new Ract("乌龟",1000);
    Ract ract2 = new Ract("兔子",200);
    
    Future<Integer> submit = pool.submit(ract);
    Future<Integer> submit2 = pool.submit(ract2);
    
    //设定时间为多长,时间到了,结束跑步
    Thread.sleep(2000);
    ract.setFlag(false);
    ract2.setFlag(false);
    
    
    Integer integer = submit.get();
    Integer integer2 = submit2.get();
    
    System.out.println("兔子走了:"+integer2+"步");
    System.out.println("乌龟走了:"+integer+"步");
    
    pool.shutdownNow();
}
相关文章
|
6月前
|
Java Linux API
线程的认识
线程的认识
|
2月前
|
安全 Java
线程(二)
线程(二)
|
6月前
|
C#
C#线程初步
C#线程初步
34 0
|
Java Linux 调度
03.关于线程你必须知道的8个问题(中)
大家好,我是王有志,欢迎来到《Java面试都问啥?》。我们书接上回,继续聊Java面试中关于线程的问题。
75 1
03.关于线程你必须知道的8个问题(中)
|
Java Linux 程序员
04.关于线程你必须知道的8个问题(下)
大家好,我是王有志。今天是Java面试中线程问题的最后一部分内容,包括我们来聊同步与互斥,线程的本质,调度,死锁以及线程的优缺点等问题。
113 1
04.关于线程你必须知道的8个问题(下)
|
算法 NoSQL Java
02.关于线程你必须知道的8个问题(上)
大家好,我是王有志,欢迎来到《Java面试都问啥?》。 今天我们来一起看看在面试中,关于线程各大公司大都喜欢问哪些问题。
104 1
02.关于线程你必须知道的8个问题(上)
|
传感器 存储 自动驾驶
(6)线程
(6)线程
99 0
|
缓存 监控 Java
线程
多线程
109 0
|
C++
C++ | C++线程
c++创建线程的方式不止一种。
118 0