Java创建多线程的方式

Java创建多线程的方式

方式一:继承Thread类

package com.scfenzhi.thread.create;

import org.junit.Test;

public class ExtendsThreadWay {
    
    

    @Test
    public void test1() {
    
    
        new SubThread().start();
    }


    private static class SubThread extends Thread {
    
    

        @Override
        public void run() {
    
    
            for (int i = 0; i < 100; i++) System.out.println(i);
        }

    }

}


方式二:实现Runnable接口方式

package com.scfenzhi.thread.create;

import org.junit.Test;

public class ImplementsRunnableWay {
    
    

    @Test
    public void test1() {
    
    
        new Thread(new SubThread()).start();
    }

    private static class SubThread implements Runnable {
    
    

        @Override
        public void run() {
    
    
            for (int i = 0; i < 100; i++) System.out.println(i);
        }
    }
}

方式三:实现Callable接口方式

package com.scfenzhi.thread.create;

import org.junit.Test;

import java.util.concurrent.Callable;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.FutureTask;

public class ImplementsCallableWay {
    
    

    @Test
    public void test1() throws ExecutionException, InterruptedException {
    
    
        FutureTask<String> futureTask = new FutureTask<>(new SubThread());
        futureTask.run();
        String result = futureTask.get();
        System.out.println(result);
    }

    private static class SubThread implements Callable<String> {
    
    

        @Override
        public String call() throws InterruptedException {
    
    
            StringBuilder stringBuilder = new StringBuilder();
            for (int i = 0; i < 100; i++) stringBuilder.append(i);
            Thread.sleep(5000);
            return stringBuilder.toString();
        }
    }

}

猜你喜欢

转载自blog.csdn.net/daiyi666/article/details/120101424