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

  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. ArrayList迭代器源码分析

    集合的遍历 Java集合框架中容器有很多种类,如下图中: 对于有索引的List集合可以通过for循环遍历集合: List<String> list = new ArrayList<& ...

  2. GIT导出差异版本更新的文件列表

    之前写了一篇SVN导出差异版本更新的文件列表 这次写git如何导出差异化版本文件列表 查找了一番,发现git diff这个命令 $ git diff 2da595c daea1d6 --name-on ...

  3. js if判断示例

    ){ ){ console.log("%0 pass") }else{ $(,v,function() { fla=; }); } }){ ){ console.log(" ...

  4. react项目中页面跳转、刷新及获取网络状态

    // 页面跳转 window.location.href = 'http://speedtest.wangxiaotong.com/' // 页面刷新 window.location.reload() ...

  5. Unity --- 设置选择的图片的格式

    static void Setting(string assetPath, int maxSize, TextureImporterFormat androidFormat, TextureImpor ...

  6. JAVA-类方法与实例方法

    1.实例方法:一个方法如果不加static关键字,那么这个方法是实例方法.意思是他属于类的某个实例,通过这个实例调用它,对类的其他实例不产生影响. 2.类方法:也称静态方法.在方法前加static关键 ...

  7. 【sock_stream和sock_dgram】、 【AF_INET和AF_UNIX】

    [sock_stream和sock_dgram] 1.sock_stream 是有保障的(即能保证数据正确传送到对方)面向连接的SOCKET,多用于资料(如文件)传送. 2.sock_dgram 是无 ...

  8. QT 右键弹出菜单

    QWidget及其子类都可有右键菜单 1.设置标志 在widget初始化的时候 setContextMenuPolicy(Qt::CustomContextMenu); 设置为自定义菜单模式 2.在需 ...

  9. Eclipse+Maven环境下java.lang.OutOfMemoryError: PermGen space及其解决方法

    转自  https://blog.csdn.net/qdgengwenfei/article/details/71455432 java.lang.OutOfMemoryError: PermGen ...

  10. mysql 表关联批量更新

    项目中最近遇到了需要手动修改某个表的某个字段的数据,但是这个数据是来自别的表,需要关联,所以需要用到关联的批量更新,特此记录一下. UPDATE t_account_trans_info AS iiI ...