Java 线程创建方法之一——实现Runnable接口、匿名内部类写法
线程的创建方式——实现Runnable接口
多线程是很有用的,我们在进程中创建线程的方式有三种:
- 直接定义一个类继承线程类Thread。重写run()方法,创建线程对象
调用线程对象的start()方法启动线程。 - 定义一个饯程任务类实现Runnable接口,重写run()方法, 创建践程任务对象,把
线程任务对象包装成线程对象,调用线程对 象的start()方法启动线程。 - 实现Callable接口(拓展)。
Thread 的构造器
public Thread(){}
public Thread(String name){}
public Thread(Runnable target){}
public Thread(Runnable target,String name){}
实现Runnable接口的方式。
- 创建一个线程任务类实现Runnable接口。
- 重写run()方法。
- 创建一个线程任务对象。
- 把线程任务对象包装成线程对象
- 调用线程对象的start()方法启动线程。
public class ThreadDemo2 {public static void main(String[] args) {//3.创建一个线程任务对象(不是线程对象,只是执行线程任务的)Runnable target = new MyRunnable();//4.把线程任务对象包装成线程//Thread t1 = new Thread(target);Thread t2 = new Thread(target,"线程1号");//5.调用start方法t2.start();//主线程加个任务for (int i = 0; i < 10 ;i++){System.out.println(Thread.currentThread().getName()+"=>"+i);}}
}//1.创建一个线程任务类实现runnable接口
class MyRunnable implements Runnable{//2.重写run方法@Overridepublic void run() {for (int i = 0 ;i < 10 ; i++){System.out.println(Thread.currentThread().getName()+"=>"+i);}}
}
优点:
- 线程任务类只是实现了Runnable接口,可以继续继承其他类,而且可以继续实现其他的功能
- 同一个线程任务对象可以被包装成多个线程对象
- 适合多个相同的程序代码的线程去共享同一个资源
- 实现解棍操作,代码可以被多个线程共享,线程任务代码和线程独立。
匿名内部类写法
public class ThreadDemo3 {public static void main(String[] args) {Thread t = new Thread(new Runnable() {@Overridepublic void run() {for (int i = 0; i < 10; i++) {System.out.println(Thread.currentThread().getName() + "=>" + i);}}});t.start();//主线程加个任务for (int i = 0; i < 10; i++) {System.out.println(Thread.currentThread().getName() + "=>" + i);}}
}
Java 线程创建方法之一——实现Runnable接口、匿名内部类写法相关推荐
- 线程创建方式3-实现 callable接口(Java)
线程创建方式3-实现 callable接口(Java) 线程创建方式三:实现 callable接口 callable的好处: 1.可以定返回值 2.可以抛出异常 package src.Demo02; ...
- java线程初始方法三种_Java 多线程 三种实现方式
Java多线程实现方式主要有三种:继承Thread类.实现Runnable接 口.使用ExecutorService.Callable 实现有返回结果的多线程.其中前两种方式线程执行完后都没有返回值, ...
- java线程创建过程_Java创建线程的细节分析
转载:http://shmilyaw-hotmail-com.iteye.com/blog/1880902 前言 关于线程创建的问题,可以说是老生常谈了.在刚开始学习Thread的时候基本上都会接触到 ...
- 并发编程之二:线程创建方法、运行原理、常见方法(sleep,join,interrupt,park,守护线程等)
线程创建方法.运行原理.常见方法 线程的创建方法 继承Thread 实现Runnable FutureTask 线程的运行原理 栈与栈帧 线程运行情况 线程的上下文切换(Thread Context ...
- 【C++ 语言】线程 ( 线程创建方法 | 线程标识符 | 线程属性 | 线程属性初始化 | 线程属性销毁 | 分离线程 | 线程调度策略 | 线程优先级 | 线程等待 )
文章目录 I 线程创建方法 II 线程执行函数 III 线程标识符 IV 线程属性 V 线程属性 1 ( 分离线程 | 非分离线程 ) VI 线程属性 2 ( 线程调度策略 ) VII 线程属性 3 ...
- 创建一个 Dog 类继承 Thread ,每 2 秒叫一次(汪汪汪!!),创建一个 Cat 实现 Runnable 接口,每 3 秒求抚摸一次(主人快摸摸我!!),主函数(主线程)从 1 输出到 10
题目:创建一个 Dog 类继承 Thread ,每 2 秒叫一次(汪汪汪!!),创建一个 Cat 实现 Runnable 接口,每 3 秒求抚摸一次(主人快摸摸我!!),主函数(主线程)从 1 输出到 ...
- java线程join方法
java线程join方法 1.join方法 join方法的作用是进行线程插队,也就是说调用了join方法的线程相对于调用它的上级线程拥有跟高的执行权.调用join方法的线程的上级线程必须等待调用j ...
- java线程join方法会释放锁吗
java线程join方法会释放锁吗,虽然join底层使用wait,wait是释放锁的 wait()和join()的调用方的区别: object.wait()和thread.join() join()的 ...
- Java Lambda简化Comparator接口匿名内部类写法
Lambda简化Comparator接口匿名内部类写法 //Lambda简化Comparator接口匿名内部类写法public static void main(String[] args) {Lis ...
最新文章
- 用一个栈实现另一个栈的排序
- 集成学习(ensemble learning)(二)
- HTTP(S)协议详解
- 如何在画面中摆放大量图片
- html并行加载,html – 浏览器中的最大并行HTTP连接数?
- rtsp连接断开_live555_RTSP连接建立以及请求消息处理过程
- MapBar和MapInfo中的比例尺[更新:MapBar比例尺是正确的]
- [leetcode] 1335. 工作计划的最低难度
- JBoss WildFly 7 连接到 ActiveMQ 5.9
- 将Ubuntu从Win7的魔爪中拯救出来
- 【MMD】MikuMikuDance入门必备网址整理
- NanoHTTPD介绍
- 海思平台Hi3796MV200芯片处理器介绍
- gpt和mbr的区别
- 算法题9-最短路径问题-Dijkstra算法
- 江苏专转本计算机第七章,2013江苏专转本 第七章 无穷级数.ppt
- 阿里云centos7部署l2tp后无法连接
- 安装LINUX操作系统(CENT OS)
- flask 使用cnd导入bootstrap5
- python基础之浅谈布尔类型的变量
热门文章
- java如何判断活动的namenode_NameNode HA异常调查
- 日系明解系列又添新成员!日本编程教育界泰斗手把手教你入门 Python
- python一行代码实现求偶或者求奇数
- 手机html5 tap事件,HTML5触摸事件演化tap事件介绍
- 论坛php 图片上传,Discuz上传图片失败的解决方法
- A Song I prefer these days: Amei-记得
- 在VS中利用配置文件连接数据库
- 继Google AI黑人女性离职后又一女高管被解雇,A I伦理还有很长的路
- 赫美集团取消收购易到54%股权 后者拟独立进行IPO
- See git help gc for manual housekeeping