一.多线程实现的第二种方式

  1.定义类,实现Runnable接口

  2.重写接口中的run方法,要在run方法中定义线程要执行的任务

public class MyRunnableImpl implements Runnable{

    //run方法线程要执行的任务
@Override
public void run() {
System.out.println(Thread.currentThread().getName() + "执行了");
for(int i = 1; i <= 1000; i++) {
System.out.println("HelloJava:" + i);
}
}
}

  3.在测试类中创建Runnable接口的实现类对象

  4.创建一个Thread线程对象,并且构造方法位置传递Runnable接口的实现类对象,表示该线程要执行此任务

  5.调用Thread对象的start方法,开始线程,让线程去运行

public class Demo04Runnable {
public static void main(String[] args) {
//在测试类中创建Runnable接口的实现类对象。
MyRunnableImpl r = new MyRunnableImpl();
//创建一个Thread线程对象,并且在构造方法位置传递Runnable接口的实现类对象,
//表示该线程要执行此任务
Thread t = new Thread(r); //表示线程t对象要执行的任务是r中的run方法
//调用线程对象的start方法
t.start(); for(int i = 1; i <= 1000; i++) {
System.out.println("HelloWorld:" + i);
} }
}

  上面代码会执行: 1.main方法中for循环,

          2.MyRunnableImpl实现类中run方法中代码块

二.Thread类和Runnable接口的区别

  1.多线程有两种实现方式:

    a. 继承Thread类;

    b. 实现Runnable接口

  2.Thread类和Runnable比较,Runnable更好一些

    a. 实现Runnable接口的方式可以解决java中类与类之间只能单继承的局限性

    b. 降低类的耦合性(关联性)

    c. Runnable接口中只有一个run方法,没有start, setName, getName其他的这些方法,我们只需要在里面关注要执行的任务既可,这样这个功能就更加纯粹,更加专一,符合设计模式中的单一职责原则

    d. 有利于实现多个线程之间的数据共享

多线程之 Runnable接口的更多相关文章

  1. 多线程——实现Runnable接口实现一个多线程

    实现Runnable接口实现一个多线程 Runnable接口源码: package java.lang; //Runnable接口源码只有一个run方法 public interface Runnab ...

  2. java多线程--实现Runnable接口方式

    因为java类只能继承一个类可以实现多个接口的特性,所以一般情况下不推荐使用继承Thread类实现多线程,下面是实现Runnable接口方式的简单多线程代码 package text; /** * 多 ...

  3. java多线程--实现Runnable接口

    package unit8; import java.applet.Applet; import java.awt.Label; import java.awt.TextField; public c ...

  4. java中多线程中Runnable接口和Thread类介绍

    java中的线程时通过调用操作系统底层的线程来实现线程的功能的. 先看如下代码,并写出输出结果. // 请问输出结果是什么? public static void main(String[] args ...

  5. 多线程-实现Runnable接口

    当一个任务或者函数多个线程同时调用时仅仅继承Thread是不行的.需要实现Runnable接口. 好处: 1.将线程的任务从线程的子类中分离出来,进行了单独的封装. 按照面向对象的思想将任务封装成对象 ...

  6. Java Tread多线程(1)实现Runnable接口

    作者 : 卿笃军 原文地址:http://blog.csdn.net/qingdujun/article/details/39347245 本文演示,Tread多线程实现Runnable接口,以及简单 ...

  7. 多线程——实现Callable接口

    前两篇博客(多线程--继承Thread类.多线程--实现Runnable接口 )介绍了java使用线程的两种方法.这篇博客继续介绍第三种方法--实现Callable接口. 先说一下Runnable和C ...

  8. Java通过继承thread类与实现Runnable接口实现多线程的区别

    Java中线程的创建有两种方式: 1.  通过继承Thread类,重写Thread的run()方法,将线程运行的逻辑放在其中 2.  通过实现Runnable接口,实例化Thread类 一.通过继承T ...

  9. Java基础知识强化之多线程笔记05:Java中继承thread类 与 实现Runnable接口的区别

    1. Java中线程的创建有两种方式:  (1)通过继承Thread类,重写Thread的run()方法,将线程运行的逻辑放在其中. (2)通过实现Runnable接口,实例化Thread类. 2. ...

随机推荐

  1. Python3 tkinter基础 Text window 文本框中插入按钮

             Python : 3.7.0          OS : Ubuntu 18.04.1 LTS         IDE : PyCharm 2018.2.4       Conda ...

  2. windows中的软链接硬链接等

    学校嘛,有些时候还是得逆逆上网客户端啥的,并且学校的不少工作,这Windows的需求还是挺强的,之前Win10的体验并不是太好,不过时隔这么久,打算从7升级到10了,恰好系统也该换了. 首先是命令行的 ...

  3. Tensorflow训练和预测中的BN层的坑

    以前使用Caffe的时候没注意这个,现在使用预训练模型来动手做时遇到了.在slim中的自带模型中inception, resnet, mobilenet等都自带BN层,这个坑在<实战Google ...

  4. DAY 21内存处理与正则

    一.python的垃圾回收机制 1.引用计数(垃圾回收机制的根本) 1.引用计数是用来记录值的内存地址被记录的次数的 2.每一次对值地址的引用都可以使该值的引用计数+1 3.每一次对值地址的释放都可以 ...

  5. 关于两栏布局,三栏布局,一级点击三角触发select的onchange事件问题

    首先看这样一个效果:,这个截图来自移动端的列表的一整行,在这个效果当中,存在两个技术点,首先选择祝福卡这个宽度是一定的,右边的部分,宽度随着手机屏幕的宽度而自适应,再一个技术点就是点击最右侧向下箭头, ...

  6. Docker中安装elasticsearch6.7.1

    先拉取镜像  docker pull docker.elastic.co/elasticsearch/elasticsearch:6.7.1    然后创建容器 (这是一条长的命令!!!)  dock ...

  7. SWUST OJ(1102)

    顺序表上数据的划分问题的实现 #include <iostream> #include <cstdlib> using namespace std; int main() { ...

  8. SYN-flood攻击

    原理:当TCP三次握手进行第一次握手时,客户端向服务端发送SYN请求报文,第二次握手服务端会返回一个SYN+ACK的一个确认报文,syn-flood攻击就发生在第三次握手,当客户端不去回应服务端的SY ...

  9. Windos消息驱动

    当Window是向程序发送消息时,它调用程序中的一个函数,这个函数用来描述Windows发送的消息,成为窗口函数或消息处理函数.他是一个自定义的回调函数: LRESULT CALLBACK Windo ...

  10. 小程序getLocation出现的各种问题汇总

    1.小程序无法弹出授权位置的弹框: 需要在app.json中增加相关配置文件: "permission": { "scope.userLocation": { ...