JAVA线程的两种创建方式和优劣比较.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
JAVA线程的两种创建方式和优劣比较.doc

1、通过实现Runnable接口线程创建 1 .定义一个类实现Runnable接口,重写接口中的run 方法。在run 方法中加入具体的任务代码或处理逻辑。 2 .创建Runnable接口实现类的对象。 3 .创建一个Thread类的对象,需要封装前面Runnable接口实现类的对象。(接口可以实现多继承) 4 .调用Thread对象的start 方法,启动线程 示例代码: 01.package demo.thread; 02. 03.public class TreadDemo1 implements Runnable 04. private int countDown 10; 05. @Override 06. // 在run方法中定义任务 07. public void run 08. while countDown-- 0 09. System.out.println # + Thread.currentThread .getName + 10. + countDown + ; 11. 12. 13. 14. public static void main String[] args 15. // Runnable中run方法是一个空方法,并不会产生任何线程行为,必须显式地将一个任务附着到线程上 16. TreadDemo1 tt new TreadDemo1 ; 17. new Thread tt .start ; 18. new Thread tt .start ; 19. System.out.println 火箭发射前倒计时: ; 20. 21. 22. 运行结果: 火箭发射前倒计时: #Thread-1 8 #Thread-1 7 #Thread-1 6 #Thread-1 5 #Thread-1 4 #Thread-1 3 #Thread-1 2 #Thread-1 1 #Thread-1 0 #Thread-0 9 2、通过继承Thread类创建线程 1 .首先定义一个类去继承Thread父类,重写父类中的run 方法。在run 方法中加入具体的任务代码或处理逻辑。 2 .直接创建一个ThreadDemo2类的对象,也可以利用多态性,变量声明为父类的类型。 3 .调用start方法,线程t启动,隐含的调用run 方法。 示例代码: view plaincopy to clipboardprint? 01.package demo.thread; 02. 03.public class ThreadDemo2 extends Thread 04. private int countDown 10; 05. 06. @Override 07. // 在run方法中定义任务 08. public void run 09. while countDown-- 0 10. System.out.println # + this.getName + + countDown + ; 11. 12. 13. 14. public static void main String[] args 15. new ThreadDemo2 .start ; 16. new ThreadDemo2 .start ; 17. // 由于start方法迅速返回,所以main线程可以执行其他的操作,此时有两个独立的线程在并发运行 18. System.out.println 火箭发射前倒计时: ; 19. 20. 21. package demo.thread; public class ThreadDemo2 extends Thread private int countDown 10; @Override // 在run方法中定义任务 public void run while countDown-- 0 System.out.println # + this.getName + + countDown + ; public static void main String[] args new ThreadDemo2 .start ; new ThreadDemo2 .start ; // 由于start方法迅速返回,所以main线程可以执行其他的操作,此时有两个独立的线程在并发运行 System.out.println 火箭发射前倒计时: ; 运行结果: #Thread-0 9 #Thread-0 8 #Thread-

文档评论(0)

dmz158 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档