Java-多线程

                           **Java-多线程**

(1)进程
在了解多线程之前我们先来了解进程,进程就是应用程序在内存中分配的空间,也就是正在运行的程序。以前一个进程在一段时间内只能执行一个任务,当有多个子任务需要执行时,就只能逐个的执行这些子任务,很影响效率。

(2)线程的提出
为了让子任务同时执行,人们提出了线程的概念,让一个线程执行一个子任务,这样一个进程包含多个线程,一个线程单独负责一个子任务的执行。

(3)如何实现多线程
JDK提供了 Thread类 和 Runnable接口 来实现“线程”类

1.继承 Thread 类,并重写 run 方法
2.实现Runnable 接口的 run 方法

每个线程都拥有一个栈空间,共用一份堆内存

继承Thread类

public class Demo {
    //main方法可看成主线程
    public static void main(String[] args) {
        MyThread myThread = new MyThread();
        //调用start方法开启另一条线程
        myThread.start();
    }
    public static class MyThread extends Thread{
        /**
         * Thread类里面提供的run方法,run方法里面为另一条线程的内容
         */
        @Override
        public void run() {
            System.out.println("MyThread");
        }
    }
}

实现Runnable接口

public class Demo {
    //main方法可看成主线程
    public static void main(String[] args) {
        //1.创建一个任务对象
        MyRunnable myRunnable = new MyRunnable();
        //2.创建一个线程并为其分配一个任务
        Thread t = new Thread(myRunnable);
        //3.执行这个线程
        t.start();

    }
    public static class MyRunnable implements Runnable{
        @Override
        public void run() {
            System.out.println("MyRunnable");
        }
    }
}

通过匿名内部类的方式实现多线程

public class Demo {

    public static void main(String[] args) {
        new Thread() {
            @Override
            public void run() {
                System.out.println("MyRunnable");
            }
        }.start();

    }
}

Thread类与Runnable接口之间的比较

1.由于Java"单继承,多实现"的特性,Runnable接口使用起来比Thread更灵活
2.可以避免单继承所带来的局限性
3.因为任务与线程是分离的,降低了线程对象与线程任务的耦合性
4.线程池技术,接受Runnable类型的线程,不接受Thread类的线程

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值