Tomcat最大连接数、自定义线程池、默认参数

2020-12-01  本文已影响0人  追梦小蜗牛
pexels-rachel-claire-4993102.jpg

背景:

用Jmeter做了一次简单的压测,通过JDK自带的Jconsole工具和对应的进程建立连接,可以通过很形象的观察到Tomcat内存大小、活动线程的个数、加载类的个数、CPU的占有率的变化...然后就想看一下tomcat内部是如何管理这些请求的...

初始化流程:

初始化流程.png

请求分析:

请求在Acceptor登录,Acceptor是一个Runnable,里面有个while循环,在不停的接收请求...分两步:

    public void createExecutor() {
        internalExecutor = true;
        TaskQueue taskqueue = new TaskQueue();
        TaskThreadFactory tf = new TaskThreadFactory(getName() + "-exec-", daemon, getThreadPriority());
        executor = new ThreadPoolExecutor(getMinSpareThreads(), getMaxThreads(), 60, TimeUnit.SECONDS,taskqueue, tf);
        taskqueue.setParent( (ThreadPoolExecutor) executor);
    }

总结:

很多困难和阻碍是自己想象出来的...

上一篇 下一篇

猜你喜欢

热点阅读