• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

关于java:Java中的线程创建和启动

java 搞代码 4年前 (2022-01-27) 31次浏览 已收录 0个评论

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();
            }
        }
    }
}

/*
    //输入后果:
    main 1
    main 2
    main 3
    main 4
    main 5
    main 6
    Thread-1 1
    Thread-0 1
    Thread-1 2
    Thread-0 2
    Thread-1 3
    Thread-0 3
    Thread-1 4
    Thread-0 4
    Thread-1 5
    Thread-0 5
 */

 //或者

 /*
    //输入后果:
    main 1
    main 2
    main 3
    main 4
    main 5
    main 6
    Thread-0 1
    Thread-1 1
    Thread-0 2
    Thread-1 2
    Thread-0 3
    Thread-1 3
    Thread-0 4
    Thread-1 4
    Thread-0 5
    Thread-1 5
*/
其中,第一个线程和第二个线程的执行程序,每次运行先后顺序可能不肯定雷同,得依据虚拟机的线程调度器的调度。

实现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);
      <mark style="color:transparent">来源gaodaimacom搞#^代%!码网</mark>      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();
            }
        }
    }
}

 /*
    //输入后果:
    main 1
    main 2
    main 3
    main 4
    main 5
    main 6
    第一个线程 1
    第二个线程 1
    第一个线程 2
    第二个线程 2
    第一个线程 3
    第二个线程 3
    第一个线程 4
    第二个线程 4
    第一个线程 5
    第二个线程 5
*/

//或者

/*
    //输入后果:
    main 1
    main 2
    main 3
    main 4
    main 5
    main 6
    第二个线程 1
    第一个线程 1
    第二个线程 2
    第一个线程 2
    第二个线程 3
    第一个线程 3
    第二个线程 4
    第一个线程 4
    第二个线程 5
    第一个线程 5
*/
其中,第一个线程和第二个线程的执行程序,每次运行先后顺序可能不肯定雷同,得依据虚拟机的线程调度器的调度。

搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:关于java:Java中的线程创建和启动
喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址