java高级day05

多线程

进程:进程指正在运行的程序。确切的来说,当一个程序进入内存运行,即变成一个进程,进程是处于运行过程中的程序,并且具有一定独立功能

线程:线程是进程中的一个执行单元,负责当前进程中程序的执行,一个进程中至少有一个线程。一个进程中是可以有多个线程的,这个应用程序也可以称之为多线程程序。

简而言之:一个程序运行后至少有一个进程,一个进程中可以包含多个线程

 *main方法其实就是一个线程:所以main方法顺序执行

 *main方法所在的线程叫 主线程

 */

public class Demo01 {

    public static void main(String[] args) {

       System.out.println(1/0);

    }

}

创建线程方式一继承Thread类

public class ThreadDemo01 extends Thread{

    @Override

    public void run() {

       for(int i=0;i<10;i++){

       System.out.println("run..."+i);

       }

    }

}

public class Demo02 {

    public static void main(String[] args) {

       ThreadDemo01 td=new ThreadDemo01();

       //td.run();//不会开启任何自定义线程,这句话仅仅相当于创建对象调用方法

       td.start();

      

       for(int i=0;i<10;i++){

        System.out.println("main..."+i);

       }

    }

创建线程方式—实现Runnable接口

创建线程的另一种方法是声明实现 Runnable 接口的类。该类然后实现 run 方法。然后创建Runnable的子类对象,传入到某个线程的构造方法中,开启线程。

public class MyRunnable implements Runnable{

 

    //定义线程要执行的run方法逻辑

    @Override

    public void run() {

       

        for (int i = 0; i < 10; i++) {

            System.out.println("我的线程:正在执行!"+i);

        }

    }

}

 

public class Demo02 {

    public static void main(String[] args) {

        //创建线程执行目标类对象

        Runnable runn = new MyRunnable();

        //将Runnable接口的子类对象作为参数传递给Thread类的构造函数

        Thread thread = new Thread(runn);

        Thread thread2 = new Thread(runn);

        //开启线程

        thread.start();

        thread2.start();

        for (int i = 0; i < 10; i++) {

            System.out.println("main线程:正在执行!"+i);

        }

    }

}

猜你喜欢

转载自blog.csdn.net/Shi_Yuan_Csdn/article/details/81747364