- 1、本文档共22页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
9.2.1 继承Thread类 该类具有创建和运行线程的所有功能,通过重写该类的run()方法,实现用 户所需的功能。通过实例化自定义的Thread类,使用start()方法启动线程。 例9-1 继承Thread类创建MyThread1类,显示主线程的信息,创建子线程并启动它 程序清单:ch09\MyThread1.java public class MyThread1 extends Thread { public static void main(String[] args) { Thread t=Thread.currentThread(); //A System.out.println(当前主线程是:+t); //B t.setName(MyThread1); //C System.out.println(当前主线程是:+t); //D MyThread1 mt=new MyThread1(); //E mt.start(); //F } public void run() { //G int sum=0; for(int i=0;i101;i++) sum+=i; System.out.println(1+2+...+100=+sum); } } 程序的执行结果如下所示: 当前主线程是:Thread[main,5,main] 当前主线程是:Thread[MyThread1,5,main] 1+2+...+100=5050 分析上面的程序代码可知,A行代码通过调用Thread类的currentThread()静态方法获得 当前主线程的引用。然后在B行代码输出主线程的信息;输出结果“Thread[main,5,main]” 的第一个main代表主线程的名称,5代表它的优先级,第二个main代表线程组。通过代码行C 修改主线程的名称,代码行D再次输出主线程的信息:第一个参数值改为修改后的值 “MyThread1”。代码行E创建了子线程mt,代码行F启动了该子线程,执行线程类的run() 方法。从代码行G开始,重写了Thread类的run()方法,实现自定义的功能,本例是实现了 “1到100的累加和”的功能。注意:在本例中,如果不重写run()方法,程序正常运行, 只是此时的子线程不完成任何功能;子线程mt的启动是在主线程中实现的,而子线程在运行 完run()方法后也自动终止了。 9.2.2 实现Runnable接口 在Java中,不仅可以通过继承Thread类实现多线程的功能,也可以通过实现Runnable接口 来实现同样的功能。由于Java语言规定的单一继承原则,所以如果希望用户自定义的类继承其他类,此时可以通过实现Runnable接口的方式使用线程。 例9-2 创建SimpleThread类,实现Runnable接口,并在run()方法中实现规定的输出功能:在控制台输出字符“*”。 程序清单:ch09\SimpleThread.java public class SimpleThread implements Runnable { public static void main(String[] args) { Thread t=new Thread(new SimpleThread(),线程1); //A t.start(); System.out.println(主线程运行结束); //B } public void run() { int i=1; while(i=10){ try { System.out.print(*); Thread.sleep(1000); //C } catch (InterruptedException e){ e.printStackTrace(); } i++; } } } 类SimpleThread实现了线程接口Runnable,重写了接口中的方法run()。在代码行A中, 通过调用Thread类的构造函数: public Thread(Runnable target) 创建了一个线程对象t;然后启动该线程。在run()方法中的代码行C,调用了Thread类的静态 方法sleep(long millis),该方法的参数代表线程休眠的毫秒数,本例中的1000代表1秒钟。 可见,run()方法实现的功能是每个1秒钟输出一个字符“*”,一共输出10个字符。在运行该 程序时,主线程在运行到代码行B时已经结束了,而子线程的run()方法此时还在运行。显 然,两个线程的运行是相互
您可能关注的文档
- 新人培训课程串讲幻灯片.ppt
- Map及Multimaps.doc
- 第8讲 操作符重载.ppt
- 邢建水污染连续自动监测系统运行资料.ppt
- 第四章 ALLEGO导入网表快速指南.pdf
- 第7章 销售目标及销售定额.ppt
- 第十一章 全面透析微软DirectX9.doc
- 第8篇 C++类的继承.ppt
- 工程经济学第2篇3篇.pdf
- 第6讲 Java面向对象的程序设计.ppt
- 招生转化中招生政策调整对招生市场影响深度分析报告.docx
- 基于2025年电商市场预测,阿里巴巴生态构建策略与区域市场拓展研究报告.docx
- 文创IP授权市场盈利潜力与区域布局分析报告.docx
- 2025年社区团购供应链风险管理策略与市场布局.docx
- 半导体设备维护成本效益优化方案与成本控制研究.docx
- 全渠道零售企业会员积分系统创新案例研究2025.docx
- 工业机器人2025年智能健康管理平台建设与应用报告.docx
- 潮玩IP衍生品行业市场创新与趋势研究报告.docx
- 2025年储能技术商业模式创新案例:政策环境与市场机遇.docx
- 汉服与旅游纪念品品牌联名营销策略研究及实施效果报告.docx
最近下载
- 基于大模型的生成式检索.pdf VIP
- 西门子伺服操作说明书-SINAMICS_V90_OPI.pdf VIP
- 电力工程施工安全与质量控制管理.docx VIP
- Packing List-装箱单表格模板.xls VIP
- 电力工程施工安全及质量控制管理.doc VIP
- 2025年最新版硫化氢考试题库大全集.doc VIP
- [江西]发电厂2×600mw级机组“上大压小”土建工程施工组织设计.doc VIP
- 《护患沟通技巧》ppt课件.pptx VIP
- 县乡教师选调进城考试《教育心理学》题库及答案(各地真题).docx VIP
- 发电厂“上大压小”2×600MW超临界空冷机组工程土建专业主要施工方案.docx VIP
文档评论(0)