
线程
zzzgd816
这个作者很懒,什么都没留下…
展开
-
关于使用线程池,main方法跑完后程序仍在运行
前一段时间,使用线程池写了个脚本跑存量数据,测试了下方法,抛出异常后发现程序并没有终止,等了很久也还是一样,最后手动关闭了程序。后面发现是因为线程池。原因线程池内部有一个类似于死循环的方法,这个循环是非守护线程(用户线程),而jvm对于非守护线程,如果不终止的话,程序是不会结束的,main方法就是非守护线程。代码看代码:我们使用线程池,最终都是将任务调用ThreadPoolExecuto...原创 2019-11-11 16:34:56 · 5343 阅读 · 0 评论 -
线程的几种状态,四种常见的线程池的介绍
0. 什么是同步和有异步同步:发送一个请求,等待返回,然后再发送下一个请求,线程和进程按照顺序依次运行 异步:发送一个请求,不等待返回,随时可以再发送下一个请求同步可以避免死锁,异步可以提高效率1. 线程的几种状态:新建状态(new) : 新创建了一个线程对象可运行状态 : 其他线程调用了这个线程的start()方法. 这个线程被放到可运行线程池中,等待获取CPU的使...原创 2018-06-25 17:12:16 · 1918 阅读 · 0 评论 -
线程池ThreadPoolExecutor的详解
上一篇我已经介绍了开发中四种常用的线程池的用法,他们都会得到一个ExecutorService的实现类,也就是ExecutorService才是真正的线程池,现在来说一说他的实现类ThreadPoolExecutor线程的几种状态,四种常见的线程池的介绍1. ThreadPoolExecutor和newSingleThreadExecutor等四种线程池之间的关系其实看源码我们可以知道...原创 2018-06-25 17:40:23 · 2542 阅读 · 2 评论 -
使用SpringBoot的@Async实现异步调用方法,以及自己开启新线程异步调用
一. springboot的@Async注解实现异步要在springboot中使用异步调用方法,只要在被调用的方法上面加上@Async就可以了1.准备工作准备一个springboot工程,在Application类上加上EnableAsync注解开启异步/** * @Author: zgd * @Date: 18/09/12 10:27 * @Description:...原创 2018-09-12 11:25:14 · 43992 阅读 · 2 评论 -
数据库连接池和线程池到底应该设多大?这篇文章可能会颠覆你的认知
本文内容95%译自这篇文章:https://github.com/brettwooldridge/HikariCP/wiki/About-Pool-Sizing我在研究HikariCP(一个数据库连接池)时无意间在HikariCP的Github wiki上看到了一篇文章(即前面给出的链接),这篇文章有力地消除了我一直以来的疑虑,看完之后感觉神清气爽...转载 2018-09-25 17:59:32 · 9861 阅读 · 10 评论 -
java8的CompletableFuture的使用
一 CompletableFuture的作用CompletableFuture是Java8的一个新加的类,它在原来的Future类上,结合Java8的函数式编程,扩展了一系列强大的功能.二 如何使用CompletableFuture0. 准备工作新建一个类,准备好一个线程池,和几个测试方法package com.zgd.demo.thread.java8;import com.goo...原创 2018-11-01 15:17:38 · 7662 阅读 · 0 评论 -
深度理解Tomcat的acceptCount、maxConnections、maxThreads
一、Nio、Bio、APR1、Connector的protocolConnector在处理HTTP请求时,会使用不同的protocol。不同的Tomcat版本支持的protocol不同,其中最典型的protocol包括BIO、NIO和APR(Tomcat7中支持这3种,Tomcat8增加了对NIO2的支持,而到了Tomcat8.5和Tomcat9.0,则去掉了对BIO的支持)。BIO是Blo...转载 2019-03-22 14:22:40 · 22466 阅读 · 4 评论