在这里为了举例的方便,没有使用线程池来执行任务,而是调用了Thread对象的方法,要注意推荐执行多线程的方式还是线程池。

多线程实现步骤:

  1. 定义Runnable接口的实现类,并重写该接口的run()方法,run()方法的内容就是该线程要执行的内容
  2. 创建Runnable实现类的实例,并以此实例作为Thread的target来创建Thread对象,该Thread对象才是真正的线程对象
  3. 调用线程对象的start()方法来启动该线程

与直接继承Thread类相比,通过Runnable接口实现多线程有一点区别,如果继承了Thread类,同时也会直接继承start()方法,但是如果实现的是Runnable接口,那此时并没有start()方法可以调用。

所以要想启动多线程,可以依靠Thread类完成。Thread类有如下的构造方法:

public Thread(Runnable target) {init(null, target, "Thread-" + nextThreadNum(), 0);
}

接受的是Runnable接口对象,自然可以接收Runnable子类。

使用Runnable接口实现完整多线程的过程如下:

public class test extends Thread{public static void main(String[] args) {MyThread thread1=new MyThread("test1");MyThread thread2=new MyThread("test2");MyThread thread3=new MyThread("test3");new Thread(thread1).start();new Thread(thread2).start();new Thread(thread3).start();}}class MyThread implements Runnable{private String name;public MyThread(String name){this.name=name;}@Overridepublic void run(){for(int i=0;i<200;i++){System.out.println(this.name+"--->"+i);}}
}

输出的部分结果如下:

Java多线程实现-Runnable接口相关推荐

  1. java多线程------实现Runnable接口创建多进程,实现资源共享

    //实现Runnable接口创建多进程,实现资源共享 package xian_cheng;public class Example05 {public static void main(String ...

  2. Java多线程——Thread Runnable源码解析

    Java多线程的两种实现方法大家都应该知道了:继承Thread的子类实例化和实现Runnable接口用这个接口实现类去创建Thread实例. Java的线程在Linux平台上使用的是NPTL机制,JV ...

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

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

  4. android实现runnable接口,013 Android多线程-实现Runnable接口

    目录 image 1. 简介 image 2. 使用讲解 2.1 使用步骤 image 特别注意: Java中真正能创建新线程的只有Thread类对象 通过实现Runnable的方式,最终还是通过Th ...

  5. Java多线程(五) Lock接口,ReentranctLock,ReentrantReadWriteLock

    在JDK5里面,提供了一个Lock接口.该接口通过底层框架的形式为设计更面向对象.可更加细粒度控制线程代码.更灵活控制线程通信提供了基础.实现Lock接口且使用得比较多的是可重入锁(Reentrant ...

  6. Java 多线程 之 Runnable

    转载于 : http://www.verejava.com/?id=16992909097867 package com.thread;/**注意:1. 如果要启动一个线程必须调用,start()方法 ...

  7. java多线程问题 Runnable和Callable有什么不同?

    Runnable和Callable都代表那些要在不同的线程中执行的任务.Runnable从JDK1.0开始就有了,Callable是在JDK1.5增加的.它们的主要区别是Callable的 call( ...

  8. Java多线程-实现Callable接口的call()方法,示例

    创建步骤,首先实现Callable接口的call()方法并指定返回值:然后创建实现类实例:FutureTask类使用Callable实现类的实例通过FutureTask的单参数构造器创建FutureT ...

  9. java多线程分批调用接口

    线程池工具类 public class ThreadPoolUtil {public static final long DEFAULT_WAIT_SECONDS = 5000;private sta ...

  10. JavaSE基础二十:Java 多线程(线程基础知识、Java 多线程、Java 实现多线程(继承 Thread 类、实现 Runnable 接口、实现 Callable 接口))

    本章目录 1.基础知识准备 2.Java 多线程概述 3.Java 实现多线程 3.1.继承 Thread 类 如何开启新线程 Thread 类常用方法 多线程中的同步 Thread 类同步方法 多线 ...

最新文章

  1. jQuery_第五章_jQuery事件和动画
  2. 面对996,程序员如何利用“碎片时间”涨薪?
  3. php5中魔术方法函数有哪几个,php中的类魔术方法有哪些
  4. 疫情之下!国内互联网公司上班时间汇总!
  5. ASP.NET MVC 学习网站
  6. Linux下matlab断点调试
  7. 脉冲宽度测量程序 c51 c语言,基于C51单片机和LCD1602显示的超声波测距仪C语言程序...
  8. ccs船级社认证费用多少_亚马逊UL507认证是什么?办理费用是多少?
  9. 6月第2周回顾:雅虎收购案谈崩 中国***成焦点
  10. BerkeleyDB-JE数据库操作封装
  11. 求浮点数的幂的精确值
  12. atitit 文件搜索 映象文件夹结构模式.docxAtitit 百度网盘 文件 与跨机器 文件 搜索 查询 检索 解决方案 最小化索引法 映象文件夹结构模式. 1. 生成文件夹 结构信息 1
  13. python雨课堂课后答案_有没有免费查网课雨课堂答案的公众号或者软件啥的
  14. navicat激活已过期
  15. php speex,将微信jssdk录制的speex高清音频转换为wav/mp3
  16. Kettle之定时运行Job
  17. win10 语言栏跳出来,如何调回去
  18. http请求报错SSLError: HTTPSConnectionPool:Max retries exceeded with url
  19. Unity 如何在程序中发送Email邮件
  20. CreateProcess error=206, 文件名或扩展名太长

热门文章

  1. 如何用计算机寒假计划表,如何制定寒假学习计划表
  2. python覆盖数据库重复数据_如何在数据库中插入唯一数据/处理重复数据
  3. 我们公司使用了 6 年的分布式锁,很是牛逼啊!
  4. 我与潘家园金爷的对话
  5. 如何给表格数据加顺序号php,通过layui给数据表格添加序号
  6. php怎么跟小程序链接,小程序的链接怎么提取?
  7. go 中的关于命令行格式的使用
  8. 数据计算 统计学案例_PSG三维数据采集软件在土方量计算中的应用案例
  9. html解决ajax调用跨域,JQuery Ajax执行跨域请求数据的解决方案
  10. NPM — JavaScript 的包管理器