美丽鸵鸟

文章
5
资源
0
加入时间
3年0月8天

封装HttpClient连接池封装HttpClient连接池

封装HttpClient连接池平时写个爬虫啥的,每次都得各种new还得配置来配置去感觉不方便索性封装了一套基于SpirngBoot的工具和普通的工具包两种,具体见Github README.md,有简单例子,里面的方法名清晰明了,看了就知道怎么用,喜欢帮忙点个Star谢谢.Github地址: https://github.com/NoBugBoy/HttpClientc...

原理解析:线程池中多余的线程是如何回收的?

回收工作线程,一条线程getTask()返回null,就会被回收。分两种场景。1) 未调用shutdown() ,RUNNING状态下全部任务执行完成的场景线程数量大于,线程超时阻塞,超时唤醒后CAS减少工作线程数,如果CAS成功,返回null,线程回收。否则进入下一次循环。当工作者线程数量小于等于,就可以一直阻塞了。2) 调用shutdown() ,全部任务执行完成的场景shutdown()会向所有线程发出中断信号,这时有两种可能。2.1)所有线程都在阻塞。