• 多线程----Runnable接口


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

    创建线程的另一种方法是声明实现 Runnable 接口的类。该类然后实现 run 方法。

    然后创建Runnable的子类对象,传入到某个线程的构造方法中,开启线程。

     

    线程步骤

    1、定义类实现Runnable接口。

    2、覆盖接口中的run方法。。

    3、创建Thread类的对象

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

    5、调用Thread类的start方法开启线程。

     

    实例

    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);

            }

        }

    }

    l  自定义线程执行任务类

    public class MyRunnable implements Runnable{

     

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

        @Override

        public void run() {

           

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

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

            }

        }

    }

     

     实现Runnable的好处

    实现Runnable接口的方式,更加的符合面向对象,

    线程分为两部分,一部分线程对象,一部分线程任务。

    线程内部类使用

    l  方式1:创建线程对象时,直接重写Thread类中的run方法

            new Thread() {

               publicvoid run() {

                   for (int x = 0; x < 40; x++) {

                       System.out.println(Thread.currentThread().getName()

                               + "...X...." + x);

                   }

               }

            }.start();

     

    l  方式2:使用匿名内部类的方式实现Runnable接口,重新Runnable接口中的run方法

            Runnable r = new Runnable() {

               publicvoid run() {

                   for (int x = 0; x < 40; x++) {

                       System.out.println(Thread.currentThread().getName()

                               + "...Y...." + x);

                   }

               }

            };

            new Thread(r).start();

  • 相关阅读:
    算法导论--第七章、快速排序
    PS操作
    【字符编码】彻底理解字符编码
    HTML网页设计-代码效果记录
    Ubuntu 18.04 nvidia driver 390.48 安装 TensorFlow 1.12.0 和 PyTorch 1.0.0 详细教程
    cmake更新版本简记
    计算机图形学(二)——微表面模型
    计算机图形学(一)——辐照度学概述
    蒙特卡洛积分与重要性采样详解
    for循环提高内存访问效率的做法
  • 原文地址:https://www.cnblogs.com/1997WY/p/10707330.html
Copyright © 2020-2023  润新知