03_线程的创建和启动_实现Runnable接口方式
【线程的创建和启动的步骤(实现Runnable接口方式)】
1.定义Runnable接口的实现类,并重写其中的run方法。run()方法的方法体是线程执行体。
class SonThread implement Runnable{
public void run(){
......
}
}
2.创建Runnable接口实现类的实例。 sonThread s1=new SonThread();
3.用该实例作为Thread的target来创建Thread对象。 Thread t1 =new Thread(s1);
4.调用该对象的start()方法启动线程。 t1.start();
【示例代码】
package com.Higgin.part01; //1.1定义Runnable接口的实现类
class SecondThread implements Runnable{ //1.2重写其中的run方法
@Override
public void run() {
for(int i=;i<;i++){
System.out.println(Thread.currentThread().getName()+"===="+i);
}
} }
public class Demo2 { public static void main(String[] args) {
//2.创建Runnable的接口实现类的实例
SecondThread s1=new SecondThread();
SecondThread s2=new SecondThread();
//2.用Runnable的接口实现类的实例作为Thread的target,创建Thread对象
Thread t1=new Thread(s1);
Thread t2=new Thread(s2,"Higgin"); //创建Thread对象的同时可以为之命名 //启动线程
t1.start();
t2.start(); for(int i=;i<;i++){
System.out.println(Thread.currentThread().getName()+"===="+i);
}
}
}
【运行结果】

【注意一:关于命名】
在创建Thread 对象的时候可以为该Thread对象指定一个名字

【注意二:Thread的构造方法】
Runnable对象作为Thread对象的target,Runnable实现类里面包含run方法仅仅作为执行体。也就是说Thread类的作用是把run方法包装成线程的执行体。
实际运行的线程对象依然是Thread实例,只是该Thread线程负责执行其target的run方法。
03_线程的创建和启动_实现Runnable接口方式的更多相关文章
- 04_线程的创建和启动_使用Callable和Future的方式
[简述] 从java5开始,java提供了Callable接口,这个接口可以是Runnable接口的增强版, Callable接口提供了一个call()方法作为线程执行体,call()方法比run() ...
- 02_线程的创建和启动_继承Thread方式
[简述] java使用Thread类代表线程,所有的线程都必须是Thread或者其子类的实例. 每个线程的任务就是完成一定的任务,实际上就是执行一段程序流. [创建并启动多线程的步骤(集成Thread ...
- Java线程:创建与启动
Java线程:创建与启动 一.定义线程 1.扩展java.lang.Thread类. 此类中有个run()方法,应该注意其用法: public void run() 如果该线程是使用独立的 R ...
- Java 线程的创建和启动
Java 使用 Thread 类代表线程,所有的线程对象都必须是 Thread 类或其子类的实例.每个线程的作用是完成一定的任务,实际上就是执行一段程序流(一段顺序执行的代码). Java 使用线程执 ...
- Netty 学习(七):NioEventLoop 对应线程的创建和启动源码说明
Netty 学习(七):NioEventLoop 对应线程的创建和启动源码说明 作者: Grey 原文地址: 博客园:Netty 学习(七):NioEventLoop 对应线程的创建和启动源码说明 C ...
- Java并发编程之线程创建和启动(Thread、Runnable、Callable和Future)
这一系列的文章暂不涉及Java多线程开发中的底层原理以及JMM.JVM部分的解析(将另文总结),主要关注实际编码中Java并发编程的核心知识点和应知应会部分. 说在前面,Java并发编程的实质,是线程 ...
- JAVA学习笔记16——线程的创建和启动
Java使用Thread类代表线程,所有的线程对象都必须是Thread类或其子类的实例.每个线程的作用是完成一定的任务,实际上就是执行一段程序流(一段顺序执行的代码).Java使用线程执行体来代表这段 ...
- JavaSE---多线程---线程的创建、启动
1.概述 1.1 Java中使用Thread类表示线程: 所有的线程对象必须是Thread类 或 其子类的实例: 每条线程的作用:完成一定的任务: Java中使用run方法来封装线程执行体 ...
- Java线程的创建及启动
1.继承Thread类,重写该类的run()方法. package samTest; import java.util.Scanner; /** * Created by Sam on 2018-01 ...
随机推荐
- NGUI学习笔记(四):动态加载UI和NGUI事件
动态加载UI 我们进入一个场景后,如果将这个场景所有可能用到的UI都直接放在场景中做好,由于要在进入场景时就部署好所有的UI对象,那么当UI对象较多时会碰到的问题是:1.初始化场景会产生非常明显的卡顿 ...
- 关于iOS中SQLITE句柄的使用的细节
1.设计思想:给SQLITE进行封装,利用定义的类别实现方法的简洁,以便达到低耦合效果 控制器代码: #import "ViewController.h" #import &quo ...
- java的向下转型
class A{ public void fun1(){ System.out.println("A-->public void fun1()"); } public voi ...
- Redis实战之征服 Redis + Jedis + Spring (三)
一开始以为Spring下操作哈希表,列表,真就是那么土.恍惚间发现“stringRedisTemplate.opsForList()”的强大,抓紧时间恶补下. 通过spring-data-redis完 ...
- linux shell date格式化配置
国内私募机构九鼎控股打造APP,来就送 20元现金领取地址:http://jdb.jiudingcapital.com/phone.html内部邀请码:C8E245J (不写邀请码,没有现金送)国内私 ...
- 教你50招提升ASP.NET性能(八):检查你使用了什么客户端脚本
(14)Review what client scripts you are using 招数14: 检查你使用了什么客户端脚本 Out of the box, many ASP.NET projec ...
- W5500问题集锦(二)
attachment_id=5620" rel="attachment wp-att-5620" style="margin:0px; padding:0px; ...
- java_包含抽象方法的枚举类
package ming; enum Operation { PLUS { public double eval(double x, double y) { return x + y; } }, MI ...
- 可视化swing界面编辑--转载
原文地址:http://279234058.iteye.com/blog/2200122 今天发现了一个WindowBuilder插件,功能好强大,啊哈哈,从此告别手动编辑swing界面代码,直接像V ...
- Redis的安装、配置 --转载
原文地址:http://blog.sina.com.cn/s/blog_505bf9af0101ehhp.html redis的安装.配置 安装步骤如下:下载redis安装包:$ cd /opt/ap ...