|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
还有就是总有人问我到底该学习什么语言,什么语言有前途,那么我的回答是不论是C,C++,java,.net网页编程,ruby,asp或是其他语言都可以学,编程的关键不是语言,而是思想。
最复杂的编写基于线程的代码的办法之一,就是派生java.lang.Thread类。该线程类是java.lang包的一个成员,在缺省情形下,线程类能够被一切的Java使用程序挪用。为了利用线程类,我们必要懂得Thejava.lang.Thread类中界说的五个办法:
run():该办法用于线程的实行。你必要重载该办法,以便让线程做特定的事情。
start():该办法使得线程启动run()。
stop():该办法同start办法的感化相反,中断线程的运转。
suspend():该办法同stop办法分歧的是,它其实不停止未完成的线程,它仅仅挂起线程,今后还可恢复。
resume():该办法从头启动已挂起的线程。
运转ListA中的程序,运转了局见ListB
ListA:扩大线程类
classTestThreads{
publicstaticvoidmain(Stringargs[]){
classMyThreadextendsThread{
Stringwhich;
MyThread(Stringwhich){
this.which=which;
}
publicvoidrun(){
intiterations=(int)(Math.random()*100)%15;
intsleepinterval=(int)(Math.random()*1000);
System.out.println(which+"runningfor"+iterations+"iterations");
System.out.println(which+"sleepingfor"+sleepinterval+"msbetweenloops");
for(inti=0;<iterations;i++){
System.out.println(which+""+i);
try{
Thread.sleep(sleepinterval);
}catch(InterruptedExceptione){}
}
}
}
MyThreada=newMyThread("ThreadA");
MyThreadb=newMyThread("ThreadB");
MyThreadc=newMyThread("ThreadC");
a.start();
b.start();
c.start();
}
}
ListB:清单A的输入
ThreadArunningfor16iterations
ThreadCrunningfor15iterations
ThreadBrunningfor14iterations
ThreadAsleepingfor305msbetween
loops
ThreadCsleepingfor836msbetween
loops
ThreadBsleepingfor195msbetween
loops
ThreadA0
ThreadC0
ThreadB0
...
ThreadC13
ThreadB13
ThreadA14
ThreadC14
ThreadA15
ListA演示了怎样从现有的Thread类中派生出一个新类。新创立的类重载了run办法。风趣的是,完成run办法不用很严厉,由于Thread类供应一个缺省的run办法,只管它不是出格有效。
在有些场所,我们不克不及复杂地改动指定对象的父类。我们仍旧必要接纳线程。这时候,我们就必要用到Runnable接口。
而学习JAVA我觉得最应该避免的就是:只学习,不思考,只记忆,不实践! |
|