java實現線程的方法




1. 繼承Thread

        Thread thread1 = new Thread(){
            @Override
            public void run() {
                System.out.println("子線程"+new Date().getTime());
            }
        };
        thread1.start();
        System.out.println("結束!");

//        結束!
//        子線程1511245859986


2.實現Runnable接口

  Runnable runnable = new Runnable() {
            @Override
            public void run() {
                System.out.println("子線程:"+new Date().getTime());
            }
        };
        new Thread(runnable).start();
        System.out.println("結束!!!");

3. 實現Callable

public class MyCallable implements Callable<Long> {
    @Override
    public Long call() throws Exception {
        Thread.sleep(2000);
        return new Date().getTime();
    }
}

public void  test1(){
        ExecutorService pool = Executors.newFixedThreadPool(15);
        List<Future<Long>> results = new ArrayList<Future<Long>>();
        MyCallable myCallable = new MyCallable();
        for(int i=0;i<12;i++ ){
            results.add(pool.submit(myCallable));
        }
        pool.shutdown();
        for(Future future:results){
            try {
                Long times = (Long) future.get();
                Date date = new Date(times);
                SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
                System.out.println("  "+ simpleDateFormat.format(date));
            } catch (InterruptedException e) {
                e.printStackTrace();
            } catch (ExecutionException e) {
                e.printStackTrace();
            }
        }
    }
 1)




發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章