zoukankan      html  css  js  c++  java
  • Java实现多线程的三种方式(2) ------实现Runnable接口

    1、实现Runnable接口

     1 package com.cn.donleo.thread.impl;
     2 
     3 /**
     4  * @author liangd
     5  * date 2020-10-31 15:30
     6  * code 实现runnable接口
     7  */
     8 public class MyThreadByRunnable implements Runnable {
     9     /**
    10      * 获取线程对象名字  Thread.currentThread().getName()
    11      * 获得当前对象  Thread.currentThread()
    12      */
    13     @Override
    14     public void run() {
    15         for (int i = 0; i < 50; i++) {
    16             System.out.println("第" + i + "个 MyThread: " + Thread.currentThread().getName());
    17         }
    18     }
    19 }

    2、测试类

     1 package com.cn.donleo.thread.impl;
     2 
     3 /**
     4  * @author liangd
     5  * date 2020-10-31 15:35
     6  * code 测试Runnable
     7  */
     8 public class TestRunnable {
     9     /**
    10      * 一、步骤
    11      *  1、定义 Runnable 接口的实现类,并重写它的 Run 方法,run 方法同样是该线程的执行体!
    12      *
    13      *  2、创建 Runnable 实现类的实例,并将此实例作为 Thread 的 target 创建一个Thread对象,
    14      *     该Thread对象才是真正的线程对象!
    15      *
    16      *  3、调用 start 方法启动该线程
    17      *
    18      * 二、 Thread和Runnable的区别
    19      *   如果一个类继承Thread,则不适合资源共享。但是如果实现了Runable接口的话,则很容易的实现资源共享
    20      *   实现Runnable接口比继承Thread类所具有的优势:
    21      *     1):适合多个相同的程序代码的线程去处理同一个资源
    22      *     2):可以避免java中的单继承的限制
    23      *     3):增加程序的健壮性,代码可以被多个线程共享,代码和数据独立
    24      *     4):线程池只能放入实现Runable或callable类线程,不能直接放入继承Thread的类
    25      *
    26      *
    27      * @param args
    28      */
    29     public static void main(String[] args){
    30         MyThreadByRunnable runnable = new MyThreadByRunnable();
    31 
    32         Thread thread1 = new Thread(runnable,"线程1");
    33         Thread thread2 = new Thread(runnable,"线程2");
    34 
    35         thread1.start();
    36         thread2.start();
    37     }
    38 }
    作者:donleo123
    本文如对您有帮助,还请多推荐下此文,如有错误欢迎指正,相互学习,共同进步。
  • 相关阅读:
    SpringBoot相知
    SpringBoot初识
    Mybatis 3 配置 Log4j
    IdeaVim-常用操作
    [ZZ] 基于Matlab的标记分水岭分割算法
    [综] meanshift算法
    [ZZ] 麻省理工( MIT)大神解说数学体系
    [ZZ] UIUC同学Jia-Bin Huang收集的计算机视觉代码合集
    公务员 素养
    [zz]有哪些优秀的科学网站和科研软件推荐给研究生?
  • 原文地址:https://www.cnblogs.com/donleo123/p/14069820.html
Copyright © 2011-2022 走看看