并发应用程序

来源:互联网 发布:网络主播行业调查分析 编辑:程序博客网 时间:2024/05/18 23:25

线程并发

  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);    }}

}

0 0
原创粉丝点击