1. 程式人生 > >java 多執行緒 之匿名內部類實現多執行緒

java 多執行緒 之匿名內部類實現多執行緒

package 匿名內部類實現多執行緒;


public class Demo {
    public static void main(String[] args) {
        // 繼承Thread類實現多執行緒
        new Thread() {
            public void run() {
                for (int i = 0; i < 100; i++) {
                    System.out.println(Thread.currentThread().getName() + "--" + i);
                }
            }
        }.start();
        // 實現Runnable介面實現多執行緒
        new Thread(new Runnable() {

            public void run() {
                for (int i = 0; i < 100; i++) {
                    System.out.println(Thread.currentThread().getName() + "--" + i);
                }
            }
        }) {
        }.start();
    }
}

通過匿名內部類實現多執行緒,會比 實現Runnable 和繼承 Thread 會靈活一點,從傳參什麼…

eg:

 public  String first(HttpServletRequest request,WeChatQRPO weChatQRPO){
        String url = request.getSession().getServletContext()
                .getRealPath("/upload/img");
        String zipPath = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort() + request.getContextPath()+"/upload/img/zip/"+weChatQRPO.getShopName()+"/";//儲存路徑
        new Thread(new Runnable() {
            @Override
            public void run() {
                shopService.getFirst(url,zipPath,weChatQRPO,from,endPoint,accessKeyId,accessKeySecret,filePrefix,bucket,fileHeadUrl);
            }
        }).start();
        return "true";
    }

這樣就可以啟動一個執行緒幫我們做事…
這裡注意:
啟動一個執行緒之後,HttpServletRequest 物件的引數是傳不過去的, 如果你需要HttpServletRequest 裡邊的引數的話,最好以其他形式傳過去 比如:String
一些基礎知識的話 :http://www.cnblogs.com/yjd_hycf_space/p/7526608.html