线程实现

简介: 线程实现

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();
}
相关文章
|
4月前
|
Java Linux API
线程的认识
线程的认识
|
3月前
|
NoSQL Java 应用服务中间件
线程不够用怎么办?
### 并发编程挑战与解决方案概览 - 多线程导致线程爆炸,浪费CPU及可能导致JVM崩溃。线程池缓解问题,但仍有阻塞IO的效率低下。 - 非阻塞IO(如servlet3.1/Tomcat)和事件驱动(Reactive/Future)减少线程使用,但学习曲线陡峭。 - 轻量级线程如Netty、Spring Flux和虚拟线程(Java Loom)提升性能,但普及尚需时日。Java21引入虚拟线程,有望成未来性能关键。
162 10
|
4月前
|
存储 安全 Java
C++线程浅谈
C++线程浅谈
|
4月前
|
C#
C#线程初步
C#线程初步
30 0
|
算法 安全 程序员
线程小练习
线程小练习
|
Java Linux 调度
03.关于线程你必须知道的8个问题(中)
大家好,我是王有志,欢迎来到《Java面试都问啥?》。我们书接上回,继续聊Java面试中关于线程的问题。
65 1
03.关于线程你必须知道的8个问题(中)
|
传感器 存储 自动驾驶
(6)线程
(6)线程
91 0
|
C++
C++ | C++线程
c++创建线程的方式不止一种。
112 0
|
Java
什么是线程
什么是线程
129 0
线程睡眠
Thread.sleep方法会导致当前线程暂停执行一段指定的时间...