版权声明:本文为博主原创文章,转载请注明出处!谢谢! https://blog.csdn.net/aaa1050070637/article/details/88658921
Java可以用三种方式来创建线程,如下所示:
1)继承Thread类创建线程
2)实现Runnable接口创建线程
3)使用Callable和Future创建线程
直接贴代码
/**
* Created by 大漠dreamer on 2019/3/19.
*/
public class ThreadTest {
private static final String TAG = ThreadTest.class.getSimpleName();
/**
* 直接用Thread创建线程
*/
public static void newThread1() {
Thread thread = new Thread(new Runnable() {
@Override
public void run() {
//TODO
}
});
thread.start();
}
/**
* 运用Runnable创建线程
*/
public static void newThread2() {
Runnable runnable = new Runnable() {
@Override
public void run() {
//TODO
}
};
Thread thread = new Thread(runnable);
thread.start();
}
/**
* 实现Callable,创建线程,优点在于,可以获取线程运算结果
*/
public static void newThread3() {
MyCallable thread = new MyCallable();
FutureTask<String> futureTask = new FutureTask<String>(thread);
new Thread(futureTask).start();
//获取线程运行的结果
try {
String buffer = futureTask.get();
Log.d(TAG, "newThread3: " + buffer);
} catch (InterruptedException e) {
e.printStackTrace();
} catch (ExecutionException e) {
e.printStackTrace();
}
}
private static class MyCallable implements Callable<String> {
@Override
public String call() throws Exception {
StringBuffer buffer = new StringBuffer();
String test = "This is callable , let's do it";
for (int i = 0; i < test.length(); i++) {
buffer.append(test.charAt(i));
}
return buffer.toString();
}
}