zoukankan      html  css  js  c++  java
  • 多线程----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();

  • 相关阅读:
    Linux0.11之初识Makefile/build.c
    主机(windows10)虚拟机(ubuntu18)arm板(linux3.4)相互ping通
    windows上利用dhcpsrv搭建DHCP服务器
    《剑指offer》面试题27 二叉搜索树与双向链表 Java版
    《剑指offer》面试题26 复杂链表的复制 Java版
    《剑指offer》面试题25 二叉树中和为某一值的路径 Java版
    《剑指offer》面试题24 二叉搜索树的后序遍历序列 Java版
    异常处理
    三元表达式、列表推导式、生成器表达式、匿名函数、内置函数、递归调用与二分法的简单认识
    迭代器与生成器
  • 原文地址:https://www.cnblogs.com/1997WY/p/10707330.html
Copyright © 2011-2022 走看看