线程创建的方式

public class ThreadDemo {
    //定义一个线程池对象
   private static ExecutorService service=Executors.newFixedThreadPool(5);
    
    
    public static void main(String[] args) throws ExecutionException, InterruptedException {
        System.out.println("main方法执行");
        ThreadDemoSon01 son=new ThreadDemoSon01();
        son.start();
    
        ThreadDemoSon02 threadDemoSon02 = new ThreadDemoSon02();
        Thread thread = new Thread(threadDemoSon02);
        thread.start();
       /* new Thread(()->{
            
        }).start();*/
    
        
        //通过callable接口来实现 futureTask  实际是runnable接口
        FutureTask<Integer> futureTask = new FutureTask<Integer>(new MyCallable());
        Thread t3 = new Thread(futureTask);
        t3.start();
        Integer result = futureTask.get();
        System.out.println("result"+result);
   
        //我们可以通过线程池对象获取对应的线程
       service.execute(new Runnable() {
           @Override
           public void run() {
               System.out.println("当前线程"+Thread.currentThread().getName());
           }
       });
       //通过上面的 我们发现获取线程的方式有以下几种
        /**
         * 1  继承Thread对象
         * 2 实现runnable接口
         * 3 实现callable接口
         * 4 定义线程池
         * 
         * 继承Thread对象和实现runnable接口是没有办法获取返回结果的
         * callable 可以回去线程的返回结果
         * 但是这三种方法都不能控制我们得资源  如果线程过多 不能灵活的去控制
         * 线程池可以控制资源
         */
       
       
       
        System.out.println("main方法结束");
        
        
    }
}

class MyCallable implements Callable<Integer> {
    @Override
    public Integer call() throws Exception {
        System.out.println("当前线程"+Thread.currentThread().getName());
        return 10;
    }
}


class ThreadDemoSon01 extends Thread{
    @Override
    public void run() {
        System.out.println("当前线程"+Thread.currentThread().getName());
    }
}

class ThreadDemoSon02 implements Runnable{
    @Override
    public void run() {
        System.out.println("当前线程"+Thread.currentThread().getName());
        
    }
}

 

posted @ 2022-06-07 16:37  花心大萝卜li  阅读(25)  评论(0)    收藏  举报