併發應用程序

線程併發

  1. 串行的執行任務
  2. 顯示地爲任務創建線程
  3. 使用Executor框架

/**
*
*

Title: TaskExecutionWebServer


*

Description:
* 1、單線程的串行執行 缺點:糟糕的響應和較低的吞吐量
* 2、將每個任務放在各自的線程中執行 缺點:線程的管理的複雜性
* 3、將每個任務提交到Executor即線程池中執行 可以克服線程管理的複雜性,而是有線程池代爲管理
* 同樣也可以將任務的提交和任務的執行分開來,實現解耦合
* 注意:每當看到new Thread(runnable).start()時,請考慮使用Executor來代替Thread
*


* @date: 2016年7月30日下午9:46:17
* @author: ysl
* @version 1.0
*/
public class TaskExecutionWebServer {

private static final int NTHREADS = 100;
private static final Executor exec = Executors.newFixedThreadPool(NTHREADS);

public static void main(String[] args) throws IOException{

    ServerSocket socket = new ServerSocket(80);
    while(true)
    {
        final Socket connection = socket.accept();
        Runnable task = new Runnable() {

            @Override
            public void run() {
                //處理請求
                //handleRequest(connection);
            }
        };
        exec.execute(task);
    }
}

}

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