栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Java中的线程创建和启动

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java中的线程创建和启动

Java使用Thread类代表线程,所有的线程对象都必须是Thread类或者其子类的实例。每个线程的作用是完成一定的任务,实际上就是执行一段程序流(一段顺序执行的代码)。Java使用线程执行体来代表这段程序流。


继承Thread类创建线程类

通过继承Thread类来创建并启动多线程的步骤如下:

  • 定义Thread类的子类,并重写该类的run()方法,该run()方法的方法体就代表了线程需要完成的任务。因此把run()方法称为线程执行体。
  • 创建Thread子类的实例,即创建了线程对象。
  • 调用线程对象的start()方法来启动该线程。
public class MyThread extends Thread {
    @Override
    public void run() {
        for (int i = 1; i <= 5; i++) {
            //返回当前线程的名字
            System.out.println(Thread.currentThread().getName() + " " + i);
        }
    }

    public static void main(String[] args) {
        for (int i = 1; i <= 6; i++) {
            //获取当前线程的名字
            System.out.println(Thread.currentThread().getName() + " " + i);
            if (i == 3) {
                //创建第一个线程
                MyThread thread1 = new MyThread();
                //启动第一个线程
                thread1.start();

                //创建第二个线程
                MyThread thread2 = new MyThread();
                //启动第二个线程
                thread2.start();
            }
        }
    }
}



 //或者

 

其中,第一个线程和第二个线程的执行顺序,每次运行先后顺序可能不一定相同,得根据虚拟机的线程调度器的调度。
实现Runnable接口创建线程类

实现Runnable接口来创建并启动多线程的步骤如下:

  • 定义Runnable接口的实现类,并重写该接口的run()方法,该run()方法的方法体同样是该线程的线程执行体。
  • 创建Runnable实现类的实例,并以此实例作为Thread的target来创建Thread对象,该Thread对象才是真正的线程对象。
public class MyThread implements Runnable {
    @Override
    public void run() {
        for (int i = 1; i <= 5; i++) {
            //返回当前线程的名字
            System.out.println(Thread.currentThread().getName() + " " + i);
        }
    }

    public static void main(String[] args) {
        for (int i = 1; i <= 6; i++) {
            //获取当前线程的名字
            System.out.println(Thread.currentThread().getName() + " " + i);
            if (i == 3) {
                //创建Runnable的实例:MyThread
                MyThread myThread = new MyThread();

                //创建第一个线程,并将Runnable的实例:MyThread,作为Thread的target来创建Thread对象
                Thread thread1 = new Thread(myThread, "第一个线程");
                //启动第一个线程
                thread1.start();

                //创建第二个线程
                Thread thread2 = new Thread(myThread, "第二个线程");
                //启动第二个线程
                thread2.start();
            }
        }
    }
}

 

//或者


其中,第一个线程和第二个线程的执行顺序,每次运行先后顺序可能不一定相同,得根据虚拟机的线程调度器的调度。
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/693177.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号