Java多线程实现-Runnable接口
在这里为了举例的方便,没有使用线程池来执行任务,而是调用了Thread对象的方法,要注意推荐执行多线程的方式还是线程池。
多线程实现步骤:
- 定义Runnable接口的实现类,并重写该接口的run()方法,run()方法的内容就是该线程要执行的内容
- 创建Runnable实现类的实例,并以此实例作为Thread的target来创建Thread对象,该Thread对象才是真正的线程对象
- 调用线程对象的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接口相关推荐
- java多线程------实现Runnable接口创建多进程,实现资源共享
//实现Runnable接口创建多进程,实现资源共享 package xian_cheng;public class Example05 {public static void main(String ...
- Java多线程——Thread Runnable源码解析
Java多线程的两种实现方法大家都应该知道了:继承Thread的子类实例化和实现Runnable接口用这个接口实现类去创建Thread实例. Java的线程在Linux平台上使用的是NPTL机制,JV ...
- 多线程——实现Runnable接口实现一个多线程
实现Runnable接口实现一个多线程 Runnable接口源码: package java.lang; //Runnable接口源码只有一个run方法 public interface Runnab ...
- android实现runnable接口,013 Android多线程-实现Runnable接口
目录 image 1. 简介 image 2. 使用讲解 2.1 使用步骤 image 特别注意: Java中真正能创建新线程的只有Thread类对象 通过实现Runnable的方式,最终还是通过Th ...
- Java多线程(五) Lock接口,ReentranctLock,ReentrantReadWriteLock
在JDK5里面,提供了一个Lock接口.该接口通过底层框架的形式为设计更面向对象.可更加细粒度控制线程代码.更灵活控制线程通信提供了基础.实现Lock接口且使用得比较多的是可重入锁(Reentrant ...
- Java 多线程 之 Runnable
转载于 : http://www.verejava.com/?id=16992909097867 package com.thread;/**注意:1. 如果要启动一个线程必须调用,start()方法 ...
- java多线程问题 Runnable和Callable有什么不同?
Runnable和Callable都代表那些要在不同的线程中执行的任务.Runnable从JDK1.0开始就有了,Callable是在JDK1.5增加的.它们的主要区别是Callable的 call( ...
- Java多线程-实现Callable接口的call()方法,示例
创建步骤,首先实现Callable接口的call()方法并指定返回值:然后创建实现类实例:FutureTask类使用Callable实现类的实例通过FutureTask的单参数构造器创建FutureT ...
- java多线程分批调用接口
线程池工具类 public class ThreadPoolUtil {public static final long DEFAULT_WAIT_SECONDS = 5000;private sta ...
- JavaSE基础二十:Java 多线程(线程基础知识、Java 多线程、Java 实现多线程(继承 Thread 类、实现 Runnable 接口、实现 Callable 接口))
本章目录 1.基础知识准备 2.Java 多线程概述 3.Java 实现多线程 3.1.继承 Thread 类 如何开启新线程 Thread 类常用方法 多线程中的同步 Thread 类同步方法 多线 ...
最新文章
- jQuery_第五章_jQuery事件和动画
- 面对996,程序员如何利用“碎片时间”涨薪?
- php5中魔术方法函数有哪几个,php中的类魔术方法有哪些
- 疫情之下!国内互联网公司上班时间汇总!
- ASP.NET MVC 学习网站
- Linux下matlab断点调试
- 脉冲宽度测量程序 c51 c语言,基于C51单片机和LCD1602显示的超声波测距仪C语言程序...
- ccs船级社认证费用多少_亚马逊UL507认证是什么?办理费用是多少?
- 6月第2周回顾:雅虎收购案谈崩 中国***成焦点
- BerkeleyDB-JE数据库操作封装
- 求浮点数的幂的精确值
- atitit 文件搜索 映象文件夹结构模式.docxAtitit 百度网盘 文件 与跨机器 文件 搜索 查询 检索 解决方案 最小化索引法 映象文件夹结构模式. 1. 生成文件夹 结构信息	1
- python雨课堂课后答案_有没有免费查网课雨课堂答案的公众号或者软件啥的
- navicat激活已过期
- php speex,将微信jssdk录制的speex高清音频转换为wav/mp3
- Kettle之定时运行Job
- win10 语言栏跳出来,如何调回去
- http请求报错SSLError: HTTPSConnectionPool:Max retries exceeded with url
- Unity 如何在程序中发送Email邮件
- CreateProcess error=206, 文件名或扩展名太长
热门文章
- 如何用计算机寒假计划表,如何制定寒假学习计划表
- python覆盖数据库重复数据_如何在数据库中插入唯一数据/处理重复数据
- 我们公司使用了 6 年的分布式锁,很是牛逼啊!
- 我与潘家园金爷的对话
- 如何给表格数据加顺序号php,通过layui给数据表格添加序号
- php怎么跟小程序链接,小程序的链接怎么提取?
- go 中的关于命令行格式的使用
- 数据计算 统计学案例_PSG三维数据采集软件在土方量计算中的应用案例
- html解决ajax调用跨域,JQuery Ajax执行跨域请求数据的解决方案
- NPM — JavaScript 的包管理器