美文网首页
java多线程

java多线程

作者: JerryLoveCoding | 来源:发表于2021-08-24 23:24 被阅读0次

多线程一共有三种创建方式

    1. 继承Thread类
    1. 实现Runable接口
    1. 实现Callable接口

1. Thread类

Thread类是java自带的关于线程的类,其本身是实现了Runable类。


Thread实现了Runable接口

实现多线程,第一个方法的步骤如下:

  1. 声明一个Thread类的子类,然后重写run方法,建立子类的实例;
  2. 并调用start方法开启线程。(注意,实例调用run方法就仅仅是调用run方法,并没有开启多线程)

如下:

public class TestThread extends Thread{
    @Override
    public void run(){
        // run方法为一个thread线程的主体,这里我们重写了
        for(int i=0; i<100; i++){
            System.out.println("run线程--"+i);
        }
    }

    public static void main(String[] args) {
        TestThread testThread = new TestThread();
        testThread.run();  // 调用run方法仅仅是run方法,没有开启线程
        testThread.start();  // 调用start方法才能开启线程

         // 当一个Java程序启动的时候,会有一个线程立即开始运行,
        // 这个线程通常被我们叫做程序中的主线程,
        // 因为它是在我们程序开始的时候就被执行的线程。
        // main方法,是 主线程
        for(int i=0; i<100; i++){
            System.out.println("main线程--"+i);
        }

    }
}
子类实例调用run方法与调用start方法的区别

2. Runable接口

多线程第二种实现方法是实现Runable接口。

  1. 实现runable接口,重写run方法;
  2. 创建runable接口实现类的实例;
  3. 需要将runable接口的实现类丢入到Thread类的构造方法中,再调用start方法

第三步丢入构造方法是因为Thread的构造方法的形参有一个Runable实例化的对象

丢入构造方法的原因
public class TestThread2 implements Runnable{
    @Override
    public void run(){
        for(int i=0; i<100; i++){
            System.out.println("run线程--"+i);
        }
    }
    public static void main(String[] args) {
        TestThread2 testThread2 = new TestThread2();  // Runable实现类的对象
        Thread thread = new Thread(testThread2);
        thread.start();  // 调用start方法开启线程

        // main线程 主线程
        for(int i=0; i<100; i++){
            System.out.println("main线程--"+i);
        }

    }
}

3. 实现Callable接口

步骤:

相关文章

  • 带你搞懂Java多线程(五)

    带你搞懂Java多线程(一)带你搞懂Java多线程(二)带你搞懂Java多线程(三)带你搞懂Java多线程(四) ...

  • 带你搞懂Java多线程(六)

    带你搞懂Java多线程(一)带你搞懂Java多线程(二)带你搞懂Java多线程(三)带你搞懂Java多线程(四)带...

  • Java多线程目录

    Java多线程目录 Java多线程1 线程基础Java多线程2 多个线程之间共享数据Java多线程3 原子性操作类...

  • java多线程--Callable

    **移步[java多线程系列文章]Java多线程(二十二)---LockSupport工具Java 停止线程 一、...

  • android 多线程 — 线程的面试题和答案

    这里都是我从各个地方找来的资料,鸣谢: Java多线程干货系列—(一)Java多线程基础 JAVA多线程和并发基础...

  • 5月份第一周学习安排

    学习内容: java多线程及线程同步的方法(使用) java多线程各种同步方法的原理和优缺点 java多线程设计模...

  • 带你搞懂Java多线程(四)

    带你搞懂Java多线程(一)带你搞懂Java多线程(二)带你搞懂Java多线程(三) 什么是线程间的协作 线程之间...

  • Java基础(六)

    多线程 Java多线程并发 1.1 JAVA 并发知识库 1.2 JAVA 线程实现/创建方式 1.2.1 继承 ...

  • (五) volatile关键字

    Java多线程目录 1 背景 理解Java多线程的内存抽象逻辑请阅读java多线程内存模型,当代操作系统,处理器为...

  • Java多线程高级特性(JDK8)

    [TOC] 一、Java多线程 1.Java多线程基础知识 Java 给多线程编程提供了内置的支持。一条线程指的是...

网友评论

      本文标题:java多线程

      本文链接:https://www.haomeiwen.com/subject/ygvjiltx.html