学习java多线程的笔记1--Thread(Runnable t)与重写run()方法等
2017-08-23 15:57
337 查看
今天看了看《Java2核心技术卷II:高级特性》中的--多线程--这一篇,还有看了张孝祥老师的Java多线程与并发库高级应用视频。顺便做个笔记,方便以后复习一下java相关知识:
关于线程Thread类中的 Thread(Runnable target)
构造方法的使用
代码一:
- package cn.yang.thread;
- public class ThradTest2 {
- /**
- * Thread(Runnable target)
- * 分配新的 Thread 对象。
- * @param args
- */
- public static void main(String[] args) {
- //new Thread(new Runnable(){run()/*...*/}){run()/*...*/}.start();
- new Thread(
- new Runnable() {
- public void run() {
- System.out.println("this is Runnable run");
- }
- }
- ){
- public void run() {
- System.out.println("this is Thread run");
- }
- }.start();
- }
- }
上面的代码创建了一个Thread匿名类,使用的构造方法是
Thread(Runnable target)
像使用Thread()构造方法一样写以下的代码:
代码二:
- new Thread(){
- public void run() {
- //do something
- };
- }.start();
上面的写法是新建一个Thread匿名类,再实现它里面的run()方法。So...这个很容易理解为什么是这样一回事!
但我要使用Thread(Runnable target)
构造方法时,先写一个Runnable匿名类实例对象,重写里面的run()方法。
就如代码一中的那样:
代码三:
[java] view plain copy- new Thread(
- new Runnable() {
- public void run() {
- System.out.println("this is Runnable run");
- }
- }
- ){
- public void run() {
- System.out.println("this is Thread run");
- }
- }.start();
运行结果——>this is Thread run
很明显,执行了Thread匿名类的run()方法,而没有执行Runnable匿名类的run()方法。
因为上面的代码重写了Thread匿名类的run()方法.体现了面向对象编程思想
当没有重写Thread匿名类的run()方法,而仅仅重写了Runnable匿名类的run()方法,则会执行Runnable匿名类的run()方法。像这样...
代码四:
- new Thread(
- new Runnable() {
- public void run() {
- System.out.println("this is Runnable run");
- }
- }
- ){
- }.start();
- }
运行结果——>this is Runnable run
就是这样子了
摘自张老师的PPT上的知识点:
涉及到的一个以往知识点:匿名内部类对象的构造方法如何调用父类的非默认构造方法
相关文章推荐
- 学习java多线程的笔记1--Thread(Runnable t)与重写run()方法等
- 最简单的java多线程代码(重写thread或者runnable的run方法)
- Java多线程高并发学习笔记(一)——Thread&Runnable
- Java学习笔记67. 创建多线程的方法 -- 通过继承thread类创建多线程
- java再复习——多线程之初识线程,并从源码角度分析start与run方法,Thread类与Runnable接口
- Java传统多线程的实现有两种方法,继承Thread类或者实现Runnable即可.线程启动时调用start()方法.
- Java 中多线程的实现方法之Thread和Runnable
- java多线程学习笔记——yield()、wait()、sleep()等方法
- 黑马程序员——Java学习笔记--方法的重载(Overload)与重写(Override)
- Java 实现多线程的3种方法:继承Thread类;实现Runnable接口;实现Callable接口。具体代码实现实例
- Java基础知识强化之多线程笔记05:Java中继承thread类 与 实现Runnable接口的区别
- JAVA学习笔记--多线程(二)线程常用方法
- 多线程实现方式1:自定义一个类,继承Thread类,并重写run方法。
- 0040 Java学习笔记-多线程-线程run()方法中的异常
- Java学习笔记68. 通过Runnable接口创建多线程
- java 三种多线程的创建方法Thread,Handler,Runnable
- Java学习从菜鸟变大鸟之三 多线程中Thread 和Runnable的区别与运用
- Java中Thread和Runnable方法实现多线程差异性分析
- [置顶] Java 多线程 学习笔记(二)停止线程的几种方法
- java Thread学习-Thread的实现方法 继承Thread,实现Runnable 接口