




已阅读5页,还剩5页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Java多线程和枚举类型应用l Java多线程针对于计算机cpu而言,同一时间完成多个任务(实际:计算机cpu在同一时间只能做一件事情)。计算机能够将cpu处理的时间点分割成微小的时间片段(人没有办法察觉),让多个任务根据任务的优先级去执行。从而给人造成一个时间(人能够体会时间)感觉好像多个任务同时执行。l Java支持多线程。提供两种方式来处理多线程程序。n Java api提供了Thread类,让想实现多线程功能的类去extends这个类,从而该子类就具备多线程的功能。n 对于已经继承了某个父类的子类来说,如果这个子类需要实现多线程任务,根据java单一继承的规定,该子类不能extends Thread,所以java提供了一个Runable接口,让该子类implements该接口,从而完成多线程的任务。MainFun1Fun2创建新执行线程有两种方法。一种方法是将类声明为 Thread 的子类。该子类应重写 Thread 类的 run 方法。接下来可以分配并启动该子类的实例。例如,计算大于某一规定值的质数的线程可以写成: class PrimeThread extends Thread long minPrime; PrimeThread(long minPrime) this.minPrime = minPrime; public void run() / compute primes larger than minPrime . 然后,下列代码会创建并启动一个线程: PrimeThread p = new PrimeThread(143); p.start(); 创建线程的另一种方法是声明实现 Runnable 接口的类。该类然后实现 run 方法。然后可以分配该类的实例,在创建 Thread 时作为一个参数来传递并启动。采用这种风格的同一个例子如下所示: class PrimeRun implements Runnable long minPrime; PrimeRun(long minPrime) this.minPrime = minPrime; public void run() / compute primes larger than minPrime . 然后,下列代码会创建并启动一个线程: PrimeRun p = new PrimeRun(143); new Thread(p).start(); 每个线程都有一个标识名,多个线程可以同名。如果线程创建时没有指定标识名,就会为其生成一个新名称。l 多线程的应用n 举例:package com.wokit.part1;public class Demo01 extends Thread private String name;public Demo01(String name) super(); = name;/* * param args */public static void main(String args) / TODO Auto-generated method stubDemo01 aa = new Demo01(子线程);aa.start();for(int i = 0;i5;i+)System.out.println(主程序start:+i);try Thread.sleep(1000); catch (InterruptedException e) / TODO Auto-generated catch blocke.printStackTrace();Overridepublic void run() / TODO Auto-generated method stubsuper.run();for(int i = 0;i5;i+)System.out.println(+start:+i);try this.sleep(1000); catch (InterruptedException e) / TODO Auto-generated catch blocke.printStackTrace();n 举例2:package com.wokit.part1;public class Demo02 implements Runnable private String name;public Demo02(String name) super(); = name;Overridepublic void run() / TODO Auto-generated method stubfor(int i = 0;i5;i+)System.out.println(+start:+i);try Thread.sleep(1000); catch (InterruptedException e) / TODO Auto-generated catch blocke.printStackTrace();/* * param args */public static void main(String args) / TODO Auto-generated method stubDemo02 obj = new Demo02(子线程);/obj.run();new Thread(obj).start();/注意!for(int i = 0;i5;i+)System.out.println(主程序+i);try Thread.sleep(1000); catch (InterruptedException e) / TODO Auto-generated catch blocke.printStackTrace();Java枚举类型一个礼拜(7天,特征非常雷同)Weeks类是可以。但是没有必要可以用一种能够将穷举出来进行描述的方式枚举l 枚举方法示例1:枚举类package com.workit.part2;public enum Weeks SUNpublic Weeks nextDay()return MON;,MONpublic Weeks nextDay()return TUS;,TUSpublic Weeks nextDay()return WEN;,WENpublic Weeks nextDay()return THR;,THRpublic Weeks nextDay()return FRI;,FRIpublic Weeks nextDay()return SAT;,SATpublic Weeks nextDay()return SUN;public abstract Weeks nextDay();public String tostring()String mas=;if(this=SUN)mas=星期天;if(this=MON)mas=星期一;if(this=TUS)mas=星期二;if(this=WEN)mas=星期三;if(this=THR)mas=星期四;if(this=FRI)mas=星期五;if(this=SAT)mas=星期六;return mas;测试类package com.workit.part2;public class Test /* * param args */public static void main(String args) / TODO Auto-generated method stubWeeks wk = Weeks.FRI;System.out.println(今天是:+wk.FRI.tostring();System.out.println(明天是:+wk.nextDay().tostring();l 枚举示例2:package com.workit.part2;public enum Lift ONE/上楼public Lift up()return TWO;/下楼public Lift down()return ONE;,TWO/上楼public Lift up()return THREE;/下楼public Lift down()return ONE;,THREE/上楼public Lift up()return FOUR;/下楼public Lift down()return TWO;,FOUR/上楼public Lift up()return FIVE;/下楼public Lift down()return THREE;,FIVE/上楼public Lift up()return FIVE;/下楼public Lift down()return FOUR;/上楼public abstract Lift up();/下楼public abstract Lift down();public String tostring()String mas=;if(this=ONE)mas=一楼;if(this=TWO)mas=二楼;if(this=THREE)mas=三楼;if(this=FOUR)mas=四楼;if(this=FIVE)mas=五楼; return mas;测试类package com.workit.part2;import java.util.Scanner;public class TestLift /* * param args */public static void main(String args) / TODO Auto-generated method stubLift lf = Lift.ONE;/System.out.println(lf.up().tost
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年校园足球场地租赁与校园体育赛事宣传推广服务合同
- 二零二五医疗健康集团年度客户健康管理及体检套餐合同
- 临聘教师聘用合同
- 2025年危险化学品安全硝化工艺作业模拟考试题库试卷(含答案)
- 2024年上海市考评员应知应会题库(含答案)
- 统计专业毕业论文模板
- 毕业论文检测
- 函授数学专业毕业论文
- 五金机电专业的毕业论文
- 2025年节能、高效干燥设备合作协议书
- 社会化服务项目方案投标文件技术方案
- 电石中控岗位操作规程
- 造型基础-全套教案课件
- 幕墙密封胶相容性检测
- 如何清洁头皮可促进头发生长
- 班主任安全管理培训
- 药品生产企业药品安全信用评价指标及评分标准
- 台州市水处理发展有限公司化工废水处理工程项目环评报告
- 设计合同监理合同协议
- 基于人工智能的投资决策支持系统设计与优化
- 用合作协议规避劳动合同
评论
0/150
提交评论