java 创建线程的三种方法(Thread,Runnable,Callable)ExecutorService
1.继承Thread类
2.实现Runnable接口
3.实现Callable接口
4.线程池
1.继承Thread类
package com.chen;
// 创建线程的方式:继承Thread,重写run(),调用start()开启线程
// 注意,线程开启不一定立即执行,由cpu调度执行
public class TestThread2 extends Thread{
@Override
public void run(){
for (int i = 0; i <20 ; i++) {
System.out.println("submain"+i);
}
}
public static void main(String[] args) {
TestThread2 t2=new TestThread2();
t2.start();
for (int i = 0; i <20 ; i++) {
System.out.println("main"+i);
}
}
}
2.实现Runnable接口
package com.chen;
// 创建线程的方式二:实现runnable,重新run(),执行线程需要丢入runable接口实现类调用start()
public class TestThread3 implements Runnable {
@Override
public void run(){
for (int i = 0; i <20 ; i++) {
System.out.println("submain"+i);
}
}
private String name;
public void TestThread3(String name){
this.name=name;
}
public static void main(String[] args)
{
TestThread3 t3=new TestThread3();
new Thread(t3,"aa").start();
new Thread(t3,"bb").start();
new Thread(t3,"cc").start();
// main,submain交替执行
for (int i = 0; i <20 ; i++) {
System.out.println("main"+i);
}
}
}
3.实现Callable接口
4.线程池
package com.chen;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
public class TestPool {
public static void main(String[] args) {
// 创建服务,创建线程
// newFixedThreadPool 参数为线程池大小 10
ExecutorService service = Executors.newFixedThreadPool(10);
// 执行
service.execute(new MyThread());
service.execute(new MyThread());
service.execute(new MyThread());
service.execute(new MyThread());
// 关闭链接
service.shutdown();
}
}
class MyThread implements Runnable{
@Override
public void run(){
System.out.println(Thread.currentThread().getName());
}
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!