WEB开发网
开发学院手机开发Android 开发 Android应用开发之Java基础篇——线程 阅读

Android应用开发之Java基础篇——线程

 2010-10-14 06:18:00 来源:本站整理   
核心提示:public class TestRunnable implements Runnable {private String title;public TestRunnable(String title) {this.title = title;}public void run() {for ( int i = 0; i

public class TestRunnable implements Runnable {

private String title;

public TestRunnable(String title) {

this.title = title;

}

public void run() {

for ( int i = 0; i < 100; i++ ){

System.out.println(title + i);

Thread.yield();

}

}

public static void main(String[] argv) {

for( int i = 0; i < 20; i++ )

{

new Thread(new TestRunnable(i + ": ")).start();

}

}

}

在这个例子中我们可以看到TestRunnable类实现了Runnable接口——定义了run方法。然后以TestRunnable对象为参数调用Thread类的构造函数,并开始执行。通过这种方法创建了20个线程,通过打印可以看到和上例的运行结果差不多。

我们对比这两种创建线程方法我们发现,前者继承自Thread类(Thread实现了Runnable接口),并改写了run方法(Runnable接口),这种方法更为直接,更易于理解;后者,可以理解成Thread类中聚合了一个Runnable对象。那么什么时候使用后者这种方法来实现线程呢?为什么不使用前者来创建线程呢,这种简单明了的方式来定义线程呢。这里面涉及到Java的一个语言特性,Java不支持多继承,支持单继承。但是Java支持实现多个接口。这样当一个类已经继承自某个父类,并需要在线程中调用的时候,就需要用后者这种方式来实现了,不能再继承自Thread类来实现线程了(已经有父类了)。只需要在这个类中实现Runnable接口,然后再用这个类的对象既可构造出线程来。

下面介绍一下Thread类中的重要方法。

1、join方法:这个方法可以阻塞当前线程(调用join方法的线程),直到对应的线程执行结束。可以理解成当前线程等待另外一个线程执行完成。

2、sleep方法:当前线程被阻塞相应的时间。

3、yield方法:当前线程放弃调度权给其他线程。

4、start方法:线程开始运行。

5、setPriority方法:设置当前线程的优先级。提高线程优先级将会被调度程序优先调度。请注意这个只是对调度程序的一个建议,具体结果由调度程序的实现决定。

6、静态currentThread方法:将会返回当前正在执行线程对象,可以在运行期对其属性进行一些修改。

Tags:Android 应用开发 Java

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接