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

  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. credential for git

    1, 编辑~/.gitconfig文件怎加如下配置 [credential] helper = store 2,执行 git pull.输入username, password. 3.检查~/.git ...

  2. 殊途同归 - Church-Rosser and Consistency of Evaluation

        在"解释语言的语言"中提到,设计一个新的语言,仅仅是使用meta-language给出其描述是不够的,我们还需要去验证一些性质.     考虑一下我们在"解释语言 ...

  3. LaTex Verbatim 环境下使用数学符号

    参考: Write math and make a box with alltt environment LaTex Verbatim 环境下使用数学符号 在 Verbatim 环境下使用数学符号,需 ...

  4. 自动化pip安装

    其实正确安装python3.6后,在安装目录里就有pip.exe文件,只不过用的时候,要进入pip的安装目录下进行安装numpy等. 如进入这个目录, D:\Program Files\Python\ ...

  5. fprintf中使用stderr

    fprintf是C/C++中的一个格式化写-库函数,位于头文件<stdio.h>中,其作用是格式化输出到一个流/文件中 运行如下代码: #include <stdio.h> v ...

  6. Java基础知识盘点(三)- 线程篇

    创建线程的方式及实现 一.继承Thread类创建线程类 1.定义Thread的子类,并重写run方法,因为该方法的方法体就是代表了线程要完成的任务,因此run方法又叫做执行体. 2.创建Thread子 ...

  7. [Maven - Java Version] 如何设置Maven的Java版本或者使用不同的JDK版本编译

    In pom.xml, defined this maven.compiler.source properties to tell Maven to use Java 8 to compile the ...

  8. A.CTable 自动创建数据表

    1.添加依赖 <!-- A.CTable 自动创建数据表 --> <dependency> <groupId>com.gitee.sunchenbin.mybati ...

  9. js在数组中查找是否存在某一个数值

    目前想到的方法有这么几个 1.indexOf()  -> ES5 const array = ['apple', 'banance', 'orange'] array.indexOf('appl ...

  10. SWUST OJ(599)

    拉丁方阵 #include <iostream> #include <cstdlib> using namespace std; int main() { int n; cin ...