学而时习之,不亦说乎。|

Java:如何开启一个线程?

答案:

  通过Thread类的start方法或者是线程池的submit方法。


 

 

创建任务

  方法一、继承Thread类,重写run()方法,方法体中为任务。

public class LeaningThread extends Thread {
    public void run() {
        for (int i = 0; i < 20; i++) {
            System.out.println("可是这和我是一个冷酷的复读机又有什么关系呢?");
        }
    }
}

  方法二、实现Runnable类,重写run()方法,方法体中为任务。

public class LeaningRunnable implements Runnable {
    public void run() {
        for (int i = 0; i < 20; i++) {
            System.out.println("可是这和我是一个冷酷的复读机又有什么关系呢?");
        }
    }
}

  方法三、实现Callable类,重写call()方法,方法体中为任务。

public class LeaningCallable implements Callable<Boolean> {
    @Override
    public Boolean call() throws Exception {
        int nextInt = new Random().nextInt(9);
        //如果随机生成的数大于5则返回true
        return nextInt>5?true:false;
    }
}

开启线程

  方法一、调用Thread类的start()方法。

复制代码
//1.继承Thread的类,直接调用父类的start方法开启线程
new LeaningThread().start();
//2.实现Runnable的类,通过Thread代理,调用start方法开启线程 new Thread(Runnable task).start();
//3.实现Callable的类,通过FutureTask类装饰为Runnable接口的实现类 FutureTask<Boolean> task = new FutureTask<>(new ThreadDemo()); new Thread(task).start();
复制代码

  方法二、通过线程池的submit(task)方法。

//创建线程池对象
ExecutorService threadPool = Executors.newSingleThreadExecutor();
//开启线程
threadPool.submit(Runnable task);

 

快捷创建

  使用lambda表达式快速创建简单线程。

复制代码
public class LeaningLambda2 {
    public static void main(String[] args) {//使用lambda表达式快速创建简单线程
        new Thread(()->{
            for(int i =0;i<100;i++) {
                System.out.println("这触及到我的知识盲区了!");
            }
        }).start();
    }
}
复制代码

 

posted @   在博客做笔记的路人甲  阅读(427)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!
点击右上角即可分享
微信分享提示
评论
收藏
关注
推荐
深色
回顶
收起