java基础知识回顾之java Thread类--java线程实现常见的两种方式实现Runnable接口(二)
创建线程的第二中方式:
/**
*
步骤:
1定义类实现Runnable接口
2.实现Runnable接口中的run方法。
3.通过Thread类建立线程对象,并将Runnable 接口的子类对象作为实际参数传给Thread类的构造方法、
4.调用Thread类的start方法开启线程,并调用Runnable接口子类的run方法
为什么要将Runnable接口子类的对象传递给Thread类的构造方法?
因为线程的任务(要运行的代码)都封装在Runnable接口的子类对象的run方法中,所以在线程对象创建的时候就必须明确要运行的任务。
*
*/
package com.lp.ecjtu.Thread;
public class HelloRunnableThread implements Runnable{
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public HelloRunnableThread(String name){
this.name = name;
}
@Override
public void run() {
for(int i=0;i<=100;i++){
System.out.println(name+"运行"+i);
}
}
public static void main(String[] args){
HelloRunnableThread h1 = new HelloRunnableThread("A");
HelloRunnableThread h2 = new HelloRunnableThread("B");
Thread t1 = new Thread(h1);//h1为传入线程构造方法的接口
Thread t2 = new Thread(h2);
System.out.println("线程启动之前---》"+t1.isAlive());//测试线程是否处于活动状态
t1.start();//开启线程,进入可运行状态
System.out.println("线程启动之后---》"+t1.isAlive());
t2.start();
}
}
输出:
线程启动之前---》false
线程启动之后---》true
A运行0
B运行0
B运行1
B运行2
B运行3
B运行4
B运行5
B运行6
B运行7
B运行8
B运行9
B运行10
B运行11
B运行12
B运行13
A运行1
B运行14
A运行2
B运行15
java基础知识回顾之java Thread类--java线程实现常见的两种方式实现Runnable接口(二)的更多相关文章
- java基础知识回顾之java Thread类学习(三)--java线程实现常见的两种方式实现好处:
总结:实现Runnable接口比继承Thread类更有优势: 1.因为java只能单继承,实现Runnable接口可以避免单继承的局限性 2.继承Thread类,多个线程不能处理或者共享同一个资源,但 ...
- java基础知识回顾之---java String final类普通方法
辞职了,最近一段时间在找工作,把在大二的时候学习java基础知识回顾下,拿出来跟大家分享,如果有问题,欢迎大家的指正. /* * 按照面向对象的思想对字符串进行功能分类. * ...
- Java基础知识回顾之七 ----- 总结篇
前言 在之前Java基础知识回顾中,我们回顾了基础数据类型.修饰符和String.三大特性.集合.多线程和IO.本篇文章则对之前学过的知识进行总结.除了简单的复习之外,还会增加一些相应的理解. 基础数 ...
- Java基础-进程与线程之Thread类详解
Java基础-进程与线程之Thread类详解 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.进程与线程的区别 简而言之:一个程序运行后至少有一个进程,一个进程中可以包含多个线程 ...
- Java并发编程:线程间协作的两种方式:wait、notify、notifyAll和Condition
Java并发编程:线程间协作的两种方式:wait.notify.notifyAll和Condition 在前面我们将了很多关于同步的问题,然而在现实中,需要线程之间的协作.比如说最经典的生产者-消费者 ...
- 19、Java并发编程:线程间协作的两种方式:wait、notify、notifyAll和Condition
Java并发编程:线程间协作的两种方式:wait.notify.notifyAll和Condition 在前面我们将了很多关于同步的问题,然而在现实中,需要线程之间的协作.比如说最经典的生产者-消费者 ...
- Java并发--线程间协作的两种方式:wait、notify、notifyAll和Condition
在前面我们将了很多关于同步的问题,然而在现实中,需要线程之间的协作.比如说最经典的生产者-消费者模型:当队列满时,生产者需要等待队列有空间才能继续往里面放入商品,而在等待的期间内,生产者必须释放对临界 ...
- java中创建多线程两种方式以及实现接口的优点
多线程创建方式有两种 创建线程的第一种方式.继承Thread类 1.继承Thread类 2.重写Thread类中的run方法--目的将自定义代码存储在run方法.让线程执行3.调用线程的start() ...
- Java基础知识回顾(一):字符串小结
Java的基础知识回顾之字符串 一.引言 很多人喜欢在前面加入赘述,事实上去技术网站找相关的内容的一般都应当已经对相应知识有一定了解,因此我不再过多赘述字符串到底是什么东西,在官网中已经写得很明确了, ...
随机推荐
- The breakpoint will not currently be hit. No symbols have been loaded for this document."
C# exe calls function from a native C++ DLL, and breakpoints set inside C++ source code cannot be hi ...
- Linux操作系统启动流程浅析
启动BIOS程序 当电源键按下之后,BIOS(Basic nput Output System)就会由主板上的闪存来运行.BIOS程序会把自己解压缩到系统的内存之中,然后读取CMOS(Compleme ...
- 如何判断PHP 是ts还是nts版的
通过phpinfo(); 查看其中的 Thread Safety 项,这个项目就是查看是否是线程安全,如果是:enabled,一般来说应该是ts版,否则是nts版.
- php下载文件的代码示例
php下载文件的代码示例,需要的朋友可以参考下 <?php $file = 'monkey.gif'; if (file_exists($file)) { header('Content- ...
- 分享:mysql 随机查询数据
在mysql中查询5条不重复的数据,使用以下: 1 SELECT * FROM `table` ORDER BY RAND() LIMIT 5 就可以了.但是真正测试一下才发现这样效率非常低.一个1 ...
- PHP -Session 深入解剖 ① session的基本操作 【大成出品 --必是精品】。
Session的初步介绍 1 Session是服务器端技术,利用这个技术,服务器在运行时可以为每一个用户的不同浏览器(一个用户的不同浏览器将生成不同的session文件)创建一个其独享的sessio ...
- for xml path以及sql合并查询
sql中for xml path的用法. http://www.cnblogs.com/yanghaibo/archive/2010/06/04/1751405.html
- Tmall Programmer Triples Smartisan Sales
页面程序造假,丢脸丢到华尔街日报去咯 http://blogs.wsj.com/chinarealtime/2014/10/13/tmall-programmer-triples-smartisan- ...
- Storm集群安装详解
storm有两种操作模式: 本地模式和远程模式. 本地模式:你可以在你的本地机器上开发测试你的topology, 一切都在你的本地机器上模拟出来; 远端模式:你提交的topology会在一个集群的机器 ...
- intellij 设置-试验过的
1.已修改的文件星号“*”标记 2.在PROJECT窗口中快速定位,编辑窗口中的文件 在编辑的所选文件按ALT+F1, 然后选择PROJECT VIEW 3.改变编辑文本字体大小 FILE -> ...