JAVA初级(二十五)多线程(1)的基本概念,Thread和Runnable

本节开始介绍JAVA中的多线程技术.当一个进程要同时执行多个程序时,就需要使用多线程技术.


线程是指一个进程中在执行一段程序时需要的类似于员工的东西。专业术语就是进程中单一顺序的控制流。一个进程如果要运行一段程序,那么它就会让一个线程去执行。
一个进程如果要同时执行多个任务。那么就需要创建多个线程来分别执行。这就是多线程。
主线程
比如这么一段代码

 public static void main(String[] args) {
            for(int i = 1;i<10000;i++){
                System.out.println("循环很长的线程");
            }
            System.out.println("想同时执行的程序");
    }

JAVA程序是从这个main方法开始从上往下执行.这个方法执行的程序也被称为主线程。
但这段代码中,for循环的持续时间比较长.此时我想在执行for循环的同时把for循环后的语句也一起执行.此时就需要另外在开一条线程来执行。

继承Thread类实现多线程

1,编写一个类继承Thread,并重写run()方法

public class ThreadDemo extends Thread{
//重写run方法
    @Override
    public void run() {
        for(int i = 1;i<5;i++){
            System.out.println("线程");
        }
    }
}

2,在主线程中创建该线程对象并调用start()方法启动线程

public static void main(String[] args) throws InterruptedException {
        ThreadDemo threadDemo = new ThreadDemo();
        threadDemo.start();//启动线程
        for(int i = 1;i<5;i++){
            System.out.println("主线程");
        }
    }

然后执行,出现以下情况
在这里插入图片描述
你发现还是主线程先运行,自己创建的后运行。可能是这个主线程CPU抢的厉害在加上循环的次数少。手动的给它阻塞一下。使用Thread的sleep()方法
如下代码:

 public static void main(String[] args) throws InterruptedException {
        ThreadDemo threadDemo = new ThreadDemo();
        threadDemo.start();
        for(int i = 1;i<5;i++){
            System.out.println("主线程");
            Thread.sleep(1L);//使用此方法手动让主线程睡眠1毫秒
        }
    }

然后再次执行
在这里插入图片描述
这样继承Thread的方式创建线程就能实现同时做多件事的效果了。我同时执行了两个for循环
到此继承Thread方式实现线程就介绍完了。

实现Runnable接口实现多线程

1,编写一个类实现Runnable接口并重写run方法

public class ThreadDemo implements Runnable{
//重写run()方法
    @Override
    public void run() {
        for(int i = 1;i<5;i++){
            System.out.println("Runnable线程");
        }
    }
}

2,主线程中,创建一个Runnable实现类对象.然后在创建一个Thread对象把Runnable实现类对象作为参数传入到Thread的构造方法中.最后在使用start()方法执行线程

 public static void main(String[] args) throws InterruptedException {
        Runnable threadDemo = new ThreadDemo();//创建Runnable实现类对象
        Thread thread = new Thread(threadDemo);//创建Thread对象并把Runnable实现类对象作为参数传入
        thread.start();//启动线程
        for(int i = 1;i<10;i++){
            System.out.println("主线程");
        }
    }

执行,然后出现类似以下结果
在这里插入图片描述
这样也实现了同时执行了多件事情。这里同时执行了两个for而不是一个一个执行
到这实现Runnable接口的方式就介绍完了

总结
1,多线程是什么?
一个进程要同时执行多个任务,此时就需要多个线程来分别执行。这是多线程
2,继承Thread方法实现多线程步骤
(1)编写一个类继承Thread并重写run()方法
(2)主线程创建继承了Thread类的对象,并调用start()方法启动线程即可
3,实现Runnable接口实现多线程步骤
(1)编写一个类实现Runnable并重写run()方法
(2)主线程创建该Runnable实现类的对象,在创建一个Thread()对象并把这个Runnable实现类对象做为参数传入。最后在调用start()方法启动线程即可

–>补充:多线程中的同时是鉴于我们肉眼上看到的效果。在实际的程序里面是CPU在多个线程之间进行了高速切换来达到同时执行多个线程的效果.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值