Java:
实现多线程方式 3种
package duoxiancheng;
import java.util.concurrent.Callable;
import java.util.concurrent.ExecutionException;
importj ava.util.concurrent.FutureTask;
public class UseThread {
public static void main(String[] args) {
//MyThreadmyThread = new MyThread();
//myThread.start();
//Thread thread = new Thread(new MyRunnable());
//thread.start();
FutureTask<Integer>futureTask = newFutureTask<Integer>(newMyCallable());
new Thread(futureTask).start();
for(int i = 0;i< 10;i++){
System.out.println(Thread.currentThread().getName() + i);
}
try {
intsum = futureTask.get();
System.out.println(sum);
} catch (InterruptedException | ExecutionExceptione) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
class MyThread extends Thread{
public void run(){
for(int i = 0;i< 10;i++){
System.out.println(Thread.currentThread().getName() + i);
}
}
}
class MyRunnable implements Runnable{
@Override
public void run() {
for(int i = 0;i< 10;i++){
System.out.println(Thread.currentThread().getName() + i);
}
}
}
class MyCallable implements Callable<Integer>{
@Override
public Integer call() throws Exception {
int sum = 0;
for(int i = 0;i< 10;i++){
System.out.println(Thread.currentThread().getName() + i);
sum+=1;
}
return sum;
}
}
android:
class MyHandler extends Handler {
private WeakReference<MainActivity> mActivity;
BarrageHandler(MainActivity activity) {
mActivity = new WeakReference<MainActivity>(MainActivity);
}
@Override
public void handleMessage(Message msg) {
switch (msg.what) {
case MSG_DO_SOME:
(具体操作)
break;
}
}
}
Handler h = new MyHandler();
h.sendEmptyMessage();