android平台J**a多线程的用法

时间:2016.05.10 发布人:wulinbin21

android平台J**a多线程的用法

已解决问题

谷歌wulinbin21用户在2016.05.10提交了关于“哈弗h6android平台J**a多线程的用法”的提问,欢迎大家涌跃发表自己的观点。目前共有1个回答,最后更新于2024-12-31T15:26:30。希望大家能够帮助她。

详细问题描述及疑问:期待您的答案,你就是当代的活雷锋,太感谢了 !

希望以下的回答,能够帮助你。

第1个回答

用户名:nrexwt  

在J**a中要想实现多线程,有两种手段,一种是继承Thread类,另外一种是实现Runable接口。

圆谈其义各川育观门免于直接继承Thread类来说,代码大致框架是:

class类名extendsThread{
方法1;
方法2;

publi改脱课迅也cvoidrun(){
//331215问答othercode…
}
属性1;
属性2;


}
下面通过一个简单小例子帮助理解~

时钟每隔1s输出一次:

importj**a.*特细西合环权**.Date;


publicc尔乱度沿快引山好些括永lassClockThreadTest{

publicstaticvo木肉乡货叫编为创idmain(Str钢少庆范草坐亚千ing[]args){
ClockThreadclockThread=n析叫必室损已适获ewClockThread(么信坐曲慢职报面架矛);
clockTh固球识破阳放极read.start();
System.out.急场父候础读后劳标所哪println("End");
}
}
classClockThreadextendsThread{
@Override
publicvoidrun(){
***.run();
while(true){
System.何out.println(侵求解味缩肥候茶newDate());
try{
Thread.sleep(1000);
}catch(InterruptedExceptione)课{
e.printStackTrace();
}

}
}
}
输出结果显示:

.

航海比主松配西饭文终常无尽的往下输出.

意:虽然我们在这里调用的是start()方法真械照派,但是实际上调用的还是run()方法的主体。

甚很候路作乙钱么:为什么我们不能直接调用r挥un()方法呢?

我的理解是:线程的运行需要本地操作系统的支持。

但是这种方法有它的弊端,拿本例子来说,ClockThread如果有其他的父类,那么此种方法就不能用。因为J**a中不允许同时拥有几个父类。下面介绍下一种方法:

通过实现Runnable接口,大致框架是:

class类名implementsRunnable{
方法1;
方法2;

publicvoidrun(){
//othercode…
}
属性1;
属性2;


}