Java中创建线程的三种方式

版权声明:本文为博主原创文章,转载请注明出处!谢谢! 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();
        }
    }

猜你喜欢

转载自blog.csdn.net/aaa1050070637/article/details/88658921