android平台Java多线程的用法

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

对于直接继承Thread类来说,代码大致框架是:

class 类名 extends Thread{
方法1;
方法2;

public void run(){
// other code…
}
属性1;
属性2;

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

时钟每隔1s输出一次:

import java.util.Date;

public class ClockThreadTest {

public static void main(String[] args) {
ClockThread clockThread=new ClockThread();
clockThread.start();
System.out.println("End");
}
}
class ClockThread extends Thread{
@Override
public void run() {
super.run();
while(true){
System.out.println(new Date());
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}

}
}
}
输出结果显示:

....

无尽的往下输出....

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

那么:为什么我们不能直接调用run()方法呢?

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

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

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

class 类名 implements Runnable{
方法1;
方法2;

public void run(){
// other code…
}
属性1;
属性2;

}

时间: 2024-11-01 03:54:41

android平台Java多线程的用法的相关文章

Java多线程的用法详解_java

1.创建线程   在Java中创建线程有两种方法:使用Thread类和使用Runnable接口.在使用Runnable接口时需要建立一个Thread实例.因此,无论是通过Thread类还是Runnable接口建立线程,都必须建立Thread类或它的子类的实例.Thread构造函数: public Thread( );  public Thread(Runnable target);  public Thread(String name);  public Thread(Runnable targ

java 多线程 CountDownLatch用法

    CountDownLatch,一个同步辅助类,在完成一组正在其他线程中执行的操作之前,它允许一个或多个线程一直等待. 主要方法  public CountDownLatch(int count);  public void countDown();  public void await() throws InterruptedException   构造方法参数指定了计数的次数 countDown方法,当前线程调用此方法,则计数减一 awaint方法,调用此方法会一直阻塞当前线程,直到计

JniHelper调用java静态和非静态方法总结(即cocos2dx中调用android平台下显示第三方广告)

调用非静态方法首先就是调用的静态方法得到要调用的java的类对象然后通过调用 minfo.env->CallVoidMethod(activityObj, minfo.methodID);方法把对象和要调用的方法以及参数(如果有 )传递个java类对象中的非静态方法: java类: // c++中調用的方法     public static Object rtnActivity() {         System.out.println("----------rtnActivity&q

详解Java多线程编程中LockSupport类的线程阻塞用法_java

LockSupport是用来创建锁和其他同步类的基本线程阻塞原语. LockSupport中的park() 和 unpark() 的作用分别是阻塞线程和解除阻塞线程,而且park()和unpark()不会遇到"Thread.suspend 和 Thread.resume所可能引发的死锁"问题. 因为park() 和 unpark()有许可的存在:调用 park() 的线程和另一个试图将其 unpark() 的线程之间的竞争将保持活性. 基本用法LockSupport 很类似于二元信号量

java多线程中的volatile和synchronized用法分析_java

本文实例分析了java多线程中的volatile和synchronized用法.分享给大家供大家参考.具体实现方法如下: 复制代码 代码如下: package com.chzhao; public class Volatiletest extends Thread {     private static int count = 0;     public void run() {         count++;     }     public static void main(String

Android平台webkit组件java层代码分析

转自ITeye: constGU 本文将围绕android平台webkit组件中,java层的几个主要类进行分析,说明各个类的职责以及类之间的关系.若有错误疏漏之处,望不吝指出. (源码所在目录  ${framework_sourcecode_loc}\core\java\android\webkit ) 一.概述 Android平台webkit组件java层封装了一系列浏览网页相关的功能,对开发者而言,主要功能有以下两点: 1.接收上层请求(eg:loadUrl, goBack, reload

base64-Base64在java平台和android平台上加密的结果为什么不一样?

问题描述 Base64在java平台和android平台上加密的结果为什么不一样? java平台上: System.out.println(new String(Base64.encodeBase64("矿大CUMT".getBytes()))); 结果为:v/O080NVTVQ= android平台上: String d=new String(Base64.encodeBase64("矿大CUMT".getBytes())); System.out.println

Java多线程编程之Lock用法实例_java

锁是控制多个线程对共享资源进行访问的工具.通常,锁提供了对共享资源的独占访问.一次只能有一个线程获得锁,对共享资源的所有访问都需要首先获得锁.不过,某些锁可能允许对共享资源并发访问,如 ReadWriteLock(维护了一对相关的锁,一个用于只读操作,另一个用于写入操作) 的读写锁. 1.Lock提供了无条件的.可轮询的.定时的.可中断的锁获取操作,所有加锁和解锁的方法都是显式的. public interface Lock{ void lock(); //加锁 //优先考虑响应中断,而不是响应

Android编程中HTTP服务用法详解

本文实例讲述了Android编程中HTTP服务用法.分享给大家供大家参考,具体如下: 在Android中,除了使用java.net包下的API访问HTTP服务之外,我们还可以换一种途径去完成工作.Android SDK附带了Apache的HttpClient API.Apache HttpClient是一个完善的HTTP客户端,它提供了对HTTP协议的全面支持,可以使用HTTP GET和POST进行访问.下面我们就结合实例,介绍一下HttpClient的使用方法. 我们新建一个http项目,项目