黑马程序员——线程实现的两种方法
2014-03-10 22:42
232 查看
----------------------
ASP.Net+Unity开发、.Net培训、期待与您交流! ----------------------
1、继承Thread。
2、实现Runnable接口,同时覆run()方法。
继承Thread实例:
实现Runnable接口:
★在这里为什么要使用start()方法启动线程呢?
通过查阅可以看到Runnable接口如下:
Runable子类中并没有start()方法,而只有Thread类中才有,如果直接调用run()方法,
程序将会运行完run()方法体中的语句再运行后面的语句,根本达不到多线程的目的;
调用没有方法体的start()方法,native关键字声明的方法没有方法体,使用此关键字表示可调
用操作系统的底层函数(那么这样的技术又称为JNI技术),而且此方法在执行时将调用run()
方法(由系统默认调用)。
★在使用Runnable子类中并没有start()方法,而只有Thread类中才有,在Thread类中存在
以下构造方法:
public Thread(Runnable target)
此构造方法接收Runnabled 子类实例。
★两种实例的区别(实现Runnable的好处)
1、避免单继承。
2、实现资源共享。(以卖票为例)
Thread在卖张票三个线程同时卖票共卖了15张票(资源不共享)如下:
Runnable接口实现卖票:
★实现Runnable接口的Thread和MyThread ------代理设计模式
----------------------
ASP.Net+Unity开发、.Net培训、期待与您交流! ----------------------
ASP.Net+Unity开发、.Net培训、期待与您交流! ----------------------
线程实现的两种方法:
1、继承Thread。2、实现Runnable接口,同时覆run()方法。
继承Thread实例:
通过查阅可以看到Runnable接口如下:
程序将会运行完run()方法体中的语句再运行后面的语句,根本达不到多线程的目的;
调用没有方法体的start()方法,native关键字声明的方法没有方法体,使用此关键字表示可调
用操作系统的底层函数(那么这样的技术又称为JNI技术),而且此方法在执行时将调用run()
方法(由系统默认调用)。
★在使用Runnable子类中并没有start()方法,而只有Thread类中才有,在Thread类中存在
以下构造方法:
public Thread(Runnable target)
此构造方法接收Runnabled 子类实例。
★两种实例的区别(实现Runnable的好处)
1、避免单继承。
2、实现资源共享。(以卖票为例)
Thread在卖张票三个线程同时卖票共卖了15张票(资源不共享)如下:
----------------------
ASP.Net+Unity开发、.Net培训、期待与您交流! ----------------------
相关文章推荐
- 转:要实现线程调用带参数的方法有两种办法。
- 黑马程序员:创建线程的两种方法
- .NET一个线程更新另一个线程的UI(两种实现方法及若干简化)
- JAVA线程之一:实现一个线程的两种方法
- Android—— 线程 thread 两种实现方法!(转)
- Android 线程 thread 两种实现方法!
- 黑马程序员_学习日记73_725ASP.NET(禁用Cookie、ASP.NET中的重要对象、JavaScript实现AJAX、两种Json格式的序列化方法、JQuery中实现ajax的五种方法)
- 线程的两种实现方法 和 进程的两种实现方法 。
- Android 线程thread的两种实现方法(必看)
- Java--线程的互斥实现(两种方法)
- 线程、多线程基本原理与两种实现方法
- 两种实现线程的方法
- 线程有两种实现方法的具体区别
- Java线程的两种实现方法
- Android 线程 thread 两种实现方法!
- Android 线程 thread 两种实现方法!
- Android 线程 thread 两种实现方法
- JAVA中实现线程的两种方法
- 线程通讯和同步的两种实现方法
- java多线程㈠—实现线程的两种方法