欢迎来到天天文库
浏览记录
ID:62051555
大小:60.00 KB
页数:10页
时间:2021-04-16
《Java多线程和枚举类型应用.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、个人收集整理勿做商业用途Java多线程和枚举类型应用lJava多线程针对于计算机cpu而言,同一时间完成多个任务(实际:计算机cpu在同一时间只能做一件事情)。计算机能够将cpu处理的时间点分割成微小的时间片段(人没有办法察觉),让多个任务根据任务的优先级去执行。从而给人造成一个时间(人能够体会时间)感觉好像多个任务同时执行。lJava支持多线程。提供两种方式来处理多线程程序。nJava api提供了Thread类,让想实现多线程功能的类去extends这个类,从而该子类就具备多线程的功能。n对于已经继承了某个父类的子类来说,如果这个子类需要实现多线程任务,
2、根据java单一继承的规定,该子类不能extendsThread,所以java提供了一个Runable接口,让该子类implements该接口,从而完成多线程的任务。MainFun1Fun2创建新执行线程有两种方法。一种方法是将类声明为Thread的子类。该子类应重写 Thread类的 run方法。接下来可以分配并启动该子类的实例。例如,计算大于某一规定值的质数的线程可以写成: class PrimeThreadextendsThread{ longminPrime; PrimeThread(longminPrime){ this.minP
3、rime=minPrime; } publicvoidrun(){ //computeprimeslargerthanminPrime个人收集整理勿做商业用途 . . . } }然后,下列代码会创建并启动一个线程: PrimeThreadp= newPrimeThread(143); p.start(); 创建线程的另一种方法是声明实现 Runnable接口的类。该类然后实现run方法。然后可以分配该类的实例,在创建Thread时作为一个参数来传递并启动。采用这种风格的同一个例子如下所示: classPrimeRunimpleme
4、nts Runnable{ longminPrime; PrimeRun(longminPrime){ this.minPrime=minPrime; } publicvoidrun() { //computeprimeslarger thanminPrime . . . } }然后,下列代码会创建并启动一个线程: PrimeRun p=new PrimeRun(143); newThread(p).start(); 每个线程都有一个标识名,多个线程可以同名。如果线程创建时没有指定标识名,就会为其生成一个新名称。l多线程的应用n举例:
5、package com.wokit.part1;public class Demo01 extendsThread {个人收集整理勿做商业用途ﻩprivateStringname;ﻩﻩpublicDemo01(String name){ﻩsuper();ﻩthis.name= name;ﻩ}/**ﻩ*@paramargsﻩ*/ﻩpublicstatic voidmain(String[]args) {ﻩ//TODO Auto-generated methodstubDemo01 aa =newDemo01("子线程");aa.start();ﻩﻩfor(in
6、ti= 0;i<5;i++){ﻩﻩSystem.out.println("主程序start:"+i);ﻩﻩﻩtry {ﻩThread.sleep(1000);ﻩﻩ} catch (InterruptedExceptione){ﻩﻩ// TODOAuto-generated catchblockﻩe.printStackTrace();ﻩ}ﻩﻩ}ﻩﻩ}ﻩ@Overridepublicvoidrun(){ﻩ//TODO Auto-generatedmethodstubﻩsuper.run();ﻩfor(inti = 0;i<5;i++)ﻩ{ﻩﻩSystem.ou
7、t.println(this.name+"start:"+i);ﻩﻩtry{ﻩthis.sleep(1000);ﻩﻩ}catch(InterruptedExceptione) {ﻩﻩ// TODO Auto-generated catchblockﻩe.printStackTrace();ﻩﻩ}ﻩ}ﻩﻩﻩ}}n举例2:package com.wokit.part1;个人收集整理勿做商业用途publicclass Demo02implementsRunnable{ﻩprivateStringname;ﻩﻩpublicDemo02(Stringname) {ﻩs
8、uper();this.name=name;}@Ov
此文档下载收益归作者所有