java多线程的使用

线程的创建和使用

package test;

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

/**
* @author 作者 E-mail:
* @version 创建时间:2021年3月10日 上午9:22:50
* 类说明
*/
//线程的使用
public class Test001 {
    
    public static void main(String[] args) {
        //1.继承Thread类
        MyThread myThread = new MyThread();
        myThread.start();
        //2.实现Runnable接口
        Thread thread = new Thread(new MyRunnable());
        thread.start();
        //3.实现Callable接口
        FutureTask futureTask = new FutureTask(new Xxx());
        Thread ad = new Thread(futureTask);
        ad.start();
        try {
            Object object = futureTask.get();
            System.out.println(object);
        } catch (InterruptedException | ExecutionException e) {
            e.printStackTrace();
        }
        
        //4.线程池的使用
        
        /*
         * newCachedThreadPool:创建一个可缓存线程池,如果线程池长度超过处理需要,可灵活回收空闲线程,若无可回收,则新建线程。
        newFixedThreadPool:创建一个定长线程池,可控制线程最大并发数,超出的线程会在队列中等待。
        newScheduledThreadPool:创建一个定长线程池,支持定时及周期性任务执行。
        newSingleThreadExecutor:创建一个单线程化的线程池,它只会用唯一的工作线程来执行任务,保证所有任务按照指定顺序(FIFO, LIFO, 优先级)执行
        */
        
        
         ExecutorService cachedThreadPool = Executors.newFixedThreadPool(3);
        
         cachedThreadPool.execute(thread);
        
    }
}
//第一种继承Thread类
class MyThread extends Thread{
    @Override
    public void run() {
        
        for (int i = 0; i < 100; i++) {
            System.out.println("MyThread");
        }
    }
}
//第二种实现Runnable接口
class MyRunnable implements Runnable{

    @Override
    public void run() {
        
        for (int i = 0; i < 100; i++) {
            System.out.println("MyRunnable");
        }
    }
    
}
//第三种实现Callable接口
class Xxx implements Callable{

    @Override
    public Object call() throws Exception {
        for (int i = 0; i < 100; i++) {
            System.out.println("Xxx");
        }
        return "good";
    }
    
}

 

 

 

posted @ 2021-03-10 10:32  不会掉头发的程序猿  阅读(125)  评论(0)    收藏  举报