JAVA 多线程

Thread类实现多线程。

一、创建多线程实现类。

 

public class MyThread extends Thread { //继承Thread类
    public MyThread() {
    }

    public MyThread(String name) { //通过构造函数设置线程名称
        super(name);
    }

    @Override
    public void run() { // 重写run方法
        System.out.println(getName()); //打印当前线程名称
    }
}

 

 

 

二、启动多线程。

 

public static void main(String[] args) {
        MyThread myThread = new MyThread();
        myThread.setName("子线程"); //设置线程的名称
        myThread.start(); //这才是启动多线程,开辟新的栈空间。线程之间才不会互相影响
        //myThread.run();//这只是普通的调用方法,不会新启动线程,正常压方法入栈。
        new MyThread().start();//再启动一个子线程
        System.out.println(Thread.currentThread().getName());//获取当前线程名称
    }

 Runnable接口实现多线程。

一、创建Runnable接口的实现类。

public class MyRunnable implements Runnable{
    @Override
    public void run() { //实现run方法
        System.out.println("子线程运行成功");
    }
}

二、启动新线程。

public static void main(String[] args) {
        MyRunnable myRunnable = new MyRunnable();
        new Thread(myRunnable).start(); //启动新线程
    }

Thread和Runnable的区别

一、多线程的实现首先推荐使用Runnable接口实现。

  1、因为Runnable是接口,所以避免了JAVA只能单继承的的局限性。

  2、降低了程序的耦合性,所以也就变相的增强了程序的扩展性。

    1、把设置线程和开启线程进行了分离。

多线程的两概念

一、并发:指两个或多个事件在同一个时间段内发生。单核CPU,交替处理多个事件。

二、并行:指两个或多个事件在同一时刻同时发生。多核CPU,同时处理多个事件。

 

使用匿名内部类创建多线程

一、作用:简化代码。

二、代码

public static void main(String[] args) {
        new Thread() {
            @Override
            public void run() { //重写run方法
                System.out.println("Thread子线程成功执行");
            }
        }.start();

        Runnable runnable = new Runnable() { //接口实现类
            @Override
            public void run() {
                System.out.println("Runnable子线程成功执行");
            }
        };
        new Thread(runnable).start();

    }

 

线程调度

一、分时调度:所有线程轮流使用CPU的使用权,平均分配每个线程的每个线程占用CPU的时间。

二、抢占式调度:优先让优先级高的线程使用CPU,如果线程的优先级相同,就随机选择一个线程(线程随机性)。JAVA使用的是抢占式调度。

posted @ 2021-09-02 10:37  饮木  阅读(37)  评论(0编辑  收藏  举报