Document

初识多线程

初始多线程

实现多线程的方法

  • 继承Thread类(重点)
  • 实现Runnavle接口(重点)
  • 实现Caliable接口(了解,以后可能会学习到!)

多线程分两种 进程 和 线程

进程

每一个程序都是静态的,当程序运行起来那么它就会进入一个进程的状态

每个进程都算是一个单位

线程

1个进程包括若干个线程

线程是程序中执行的线程。Java虚拟机允许应用程序同时执行多个线程

每个线程都是右优先权。具有较高优先级的线程先于优先级较低的线程。每个线程可能也可能不会标记为守护线程。当在某个线程中运行的代码创建一个新的Thread对象时,新线程的优先级最初设置为等于创建线程的优先级,平且当且仅当创建线程是守护进程时才是守护线程

我们目前所观察到或者所了解到的只有一个main方法,它是一个主线程。

代码示范

package com.xhlin.demo01;

/**
 *  线程执行不一马上执行,而是由CPU调度
 */
public class TestThread1 extends Thread {
    @Override
    public void run() {
        //run 方法线程体
        for (int i = 0; i < 20; i++) {
            System.out.println("我在看代码---"+i);
        }
    }

    public static void main(String[] args) {
        TestThread1 thread = new TestThread1();
        // 开启线程
        thread.run();

        //主线程   main
        for (int i = 0; i < 2000; i++) {
            System.out.println("我在看王木木---"+i);
        }

    }
}

image-20220819085414173

image-20220819085557997

它是优先把run()方法执行完毕,然后继续执行main里面的for循环

而我们使用了调用Thread里面的 start的方法

package com.xhlin.demo01;

/**
 *  线程执行不一马上执行,而是由CPU调度
 */
public class TestThread1 extends Thread {
    @Override
    public void run() {
        //run 方法线程体
        for (int i = 0; i < 200; i++) {
            System.out.println("我在看代码---"+i);
        }
    }

    public static void main(String[] args) {
        TestThread1 thread = new TestThread1();
        // 开启线程
        thread.start();

        //主线程   main
        for (int i = 0; i < 200; i++) {
            System.out.println("我在看王木木---"+i);
        }

    }
}

image-20220819090243875

image-20220819090310541

posted @ 2022-08-19 10:02  一蓑烟雨任平生。。  阅读(30)  评论(0)    收藏  举报
Document