- 1、本文档共19页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
4.1创建及控制线程 主讲教师:胡祝华 一、知识能力目标 1.掌握线程概念及其实现机制; 2.掌握线程属性及其方法; 3.掌握线程的创建、运行、阻塞和终止。 4.能创建具有线程的Java程序 二、项目28 简单的多线程程序 使用一个线程用于计时,并使用另一个线程完成工作。在这个实例中,由run()方法实现的线程用于打印信息,由main()方法创建的主线程用于计时,这个线程一开始休眠10秒再开始执行。 1.程序代码 //SimpleThread.java public class SimpleThread extends Thread{ public static boolean f=false; /*声明变量f成为控制线程运行的标志*/ public void run(){ /*为线程创建run()方法*/ work(); /*如果想让线程完成不同的工作,只要修改work()方法*/ } private void work(){ //创建并实现work()方法,本例中work方法的功能是输出进行加法运算的次数 for(long i=1;;i++){ if(f==true){ System.out.println(进行了+i+次加法运算); break; } }} public static void main(String args[]){ SimpleThread r=new SimpleThread (); r.start(); /*调用start()方法运行run()方法从而启动线程*/ try{ Thread.sleep(10000); /*计时,主线程休眠10秒后再次开始运行*/ } catch (InterruptedException e){ } f=true; } } 2.相关知识 程序、进程、线程和多任务 程序(program) 对数据描述与操作的代码的集合 应用程序执行的脚本。 进程(process) 程序的一次执行过程 操作系统运行程序的基本单位 系统运行一个程序就是一个进程从创建、运行到消亡的过程 系统可以为一个程序同时创建多个进程 线程(thread) 比进程更小的运行单位 程序中单个顺序的流控制 一个进程可以被划分成多个线程 线程与程序 相同点:有开始、一系列可执行的命令序列、一个结束。在执行的任何时候,只有一个执行点 不同点:线程本身不能运行,只能包含在程序中,在程序中执行。一个线程在程序运行时,必须争取到为自己分配的系统资源。 多线程(相对于单线程而言) 在一个程序中可以定义多个线程并同时运行它们,每个线程可以执行不同的任务。 与进程不同:同类多线程共享一块内存空间和一组系统资源,所以系统创建多线程开销相对较小。因此,也称线程为轻负荷进程。 把程序分解成彼此独立的子任务,每一个独立的子任务由一个线程来完成 创建线程和启动线程的区别 在一个线程对新线程的Thread对象调用start()方法之前,这个新线程并没有真正开始执行 Thread对象在其线程真正启动之前就已经存在了,而且其线程退出之后仍然存在。 main()方法中可以创建若干个Thread类或者它的子类的对象,并且不设置这些对象中的任何引用 Java的垃圾收集器一般并不会清理这些对象,只有在线程离开了run()并且死亡之后才把它们清除。 不建议在构造器中通过start()方法启动线程 暴露了部分构造的对象给新线程,从封装的角度看是不可取的。 如果对象拥有一个线程,那么它应该提供一个启动该线程的start()或init()方法,而不是在构造器中启动它 应用拓展 主线程由main()创建,程序开始运行,在运行过程中另一个线程需要立即运行,主线程为这个线程让步,暂停运行,等待这个抢先运行的线程结束后再继续运行 1.程序代码 // Joinexam.java class Thread1 extends Thread{ public Thread1(){ start(); //Thread1对象实例化的时候就会开始执行线程 } public void run(){ for(int i=1;i=3;i++){ /*使用getName()方法获得当前线程的名称*/ System.out.println(线程+this.getName()+运行了+i+秒); /*本程序块控制程序每次完成输出后休眠1秒*/
您可能关注的文档
- 公文写作第二章公文格式.ppt
- 公益广告与短信.ppt
- 六(上)语文回顾拓展八3.ppt
- 1.工程量清单的概念和内容.ppt
- 六上1、山中访友.ppt
- 3植物妈妈有办法22.ppt
- 3概率论与数理统计.ppt
- 六年级上信息技术课件(B)-第9课过程的定义辽师大版(三起).ppt
- 3法的渊源、形式和效力.ppt
- 六国毕四海一.ppt
- 场地脚手架工程施工方案(3篇).docx
- 2024年浙江省丽水市松阳县玉岩镇招聘社区工作者真题及参考答案详解一套.docx
- 2024年河南省郑州市惠济区古荥镇招聘社区工作者真题及答案详解一套.docx
- 2024年浙江省杭州市淳安县文昌镇招聘社区工作者真题及完整答案详解1套.docx
- 2024年浙江省台州市三门县小雄镇招聘社区工作者真题带答案详解.docx
- 2024年浙江省宁波市余姚市河姆渡镇招聘社区工作者真题及完整答案详解1套.docx
- 2024年浙江省丽水市景宁畲族自治县雁溪乡招聘社区工作者真题及答案详解一套.docx
- 2024年浙江省杭州市临安市板桥乡招聘社区工作者真题及答案详解一套.docx
- 2024年湖北省宜昌市点军区土城乡招聘社区工作者真题及答案详解一套.docx
- 2024年浙江省台州市路桥区桐屿街道招聘社区工作者真题附答案详解.docx
最近下载
- 对本工程设计的合理化建议.docx VIP
- 奥数二升三课本.pdf VIP
- 2025年成都环境投资集团有限公司招聘笔试备考题库及答案解析.docx VIP
- 2026版高三一轮总复习(数学)20 第二章 阶段提能(一) 集合、常用逻辑用语、不等式 函数 的概念与性质.pptx VIP
- 海安县交通局老省道海安段养护改善工程海安县农村公路大修环评报告.pdf VIP
- 鸿正会议表格决系统-操作员快速培训手册.doc VIP
- 2025年行政执法基础知识综合练习题含答案详解.docx VIP
- 钳工电子教案.pdf VIP
- 深圳龙岗龙岗中学新初一分班语文试卷.pdf VIP
- 精神分裂症病历-Copy.doc VIP
文档评论(0)