温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

java多线程怎么运行

发布时间:2026-09-12 19:21:23 来源:亿速云 阅读:88 作者:小樊 栏目:编程语言

在 Java 中,多线程指的是程序中同时运行多个线程。下面从概念 → 创建方式 → 启动方式 → 简单示例 → 注意事项来讲解。


一、什么是线程

  • 进程:运行中的程序(如一个 Java 程序)
  • 线程:进程中的执行路径
  • 一个进程至少有一条线程(主线程 main)

二、Java 中创建多线程的 3 种常用方式

✅ 方式 1:继承 Thread 类(最简单)

class MyThread extends Thread {
    @Override
    public void run() {
        System.out.println("线程运行:" + Thread.currentThread().getName());
    }
}

public class Test {
    public static void main(String[] args) {
        MyThread t1 = new MyThread();
        t1.start(); // 启动线程
    }
}

⚠️ 注意:

  • 必须调用 start(),不是 run()
  • run() 只是普通方法

✅ 方式 2:实现 Runnable 接口(推荐)

class MyRunnable implements Runnable {
    @Override
    public void run() {
        System.out.println("Runnable线程:" + Thread.currentThread().getName());
    }
}

public class Test {
    public static void main(String[] args) {
        Thread t = new Thread(new MyRunnable());
        t.start();
    }
}

✅ 优点:

  • 避免单继承限制
  • 更适合资源共享

✅ 方式 3:实现 Callable + Future(有返回值)

import java.util.concurrent.*;

public class Test {
    public static void main(String[] args) throws Exception {
        Callable<Integer> task = () -> {
            return 1 + 2;
        };

        ExecutorService pool = Executors.newSingleThreadExecutor();
        Future<Integer> future = pool.submit(task);

        System.out.println("结果:" + future.get());
        pool.shutdown();
    }
}

三、线程的启动流程

创建线程对象
   ↓
调用 start()
   ↓
JVM 分配栈空间
   ↓
执行 run()

四、常用线程方法

Thread.sleep(1000);     // 休眠 1 秒
thread.join();          // 等待线程结束
Thread.yield();         // 让出 CPU
thread.setPriority(10); // 优先级(不一定生效)

五、线程池方式(实际开发推荐)

ExecutorService pool = Executors.newFixedThreadPool(3);
pool.execute(() -> System.out.println("线程池任务"));
pool.shutdown();

六、常见错误

❌ 直接调用 run()(不是多线程)
❌ 多次调用 start()(会抛异常)
❌ 共享变量不加锁(线程安全问题)


七、简单总结

方式 是否推荐 特点
Thread ❌ 简单但不灵活
Runnable ✅ 最常用
Callable ✅ 有返回值
线程池 ✅✅ 企业级用法

如果你愿意,我可以:

  • 给你画 线程执行流程图
  • 讲 线程安全 / synchronized
  • 写一个 生产者消费者示例

你想学哪一块?

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI
助
手