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(); } }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!