您的位置:首页 > 职场人生

黑马程序员——线程实现的两种方法

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培训、期待与您交流! ----------------------
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: