支持内部晋升的无锁并发优先级线程池 [TOC] 引言 在技术群讨论到一个有意思的业务需求,可以描述为: 有一个内部按照优先级进行任务排序的线程池。线程池会优先执行高优先级的任务。随着时间的流逝,线程池内部低优先级的任务的优先级会逐渐晋升变为高优先级,以避免被不断新增的高优先级任务阻塞导致饿死。 考虑 ...
分类:
编程语言 时间:
2020-01-10 22:16:09
阅读次数:
82
爬虫学习 06.Python网络爬虫之requests模块(2) 今日内容 session处理cookie proxies参数设置请求代理ip 基于线程池的数据爬取 知识点回顾 xpath的解析流程 bs4的解析流程 常用xpath表达式 常用bs4解析方法 了解cookie和session \ 无 ...
分类:
编程语言 时间:
2020-01-09 19:01:29
阅读次数:
118
1.cpu密集型(例如while循环 ) cpu密集的意思是该任务需要大量的运算,而没有阻塞,cpu一直全速运行。 cpu密集任务只有在真正的多核cpu上才可能得到加速(通过多线程) 而在单核cpu上,无论你开几个模拟的多线程该任务都不可能得到加速,因为cpu总的运算能力就那些 cpu密集型任务配置 ...
分类:
编程语言 时间:
2020-01-09 01:32:23
阅读次数:
122
什么是线程池?为什么要用线程池? 1、降低资源的消耗。降低线程创建和销毁的资源消耗; 2、提高响应速度:线程的创建时间为T1,执行时间T2,销毁时间T3,免去T1和T3的时间 3、提高线程的可管理性。 实现一个我们自己的线程池 1、 线程必须在池子已经创建好了,并且可以保持住,要有容器保存多个线程; ...
分类:
编程语言 时间:
2020-01-08 22:44:59
阅读次数:
87
手写线程池: AbortPolicy:直接抛出RejectedExecutionException异常阻止系统正常运行。 public class MyThreadPoolDemo { public static void main(String[ ]args) { ExecutorService ...
分类:
编程语言 时间:
2020-01-08 21:02:36
阅读次数:
94
本篇文章主要是对asyncio和相关内容的补充, 以及一个异步爬虫实例. 这个系列还有另外两篇文章: 从零开始学asyncio(上) 从零开始学asyncio(中) 一. 使用同步代码 上一篇文章已经讲到, 使用asyncio模块的基本套路是, 把要执行的代码写成协程函数的形式, 在函数内部IO操作 ...
分类:
其他好文 时间:
2020-01-08 20:54:28
阅读次数:
71
性能优化 ~~~ Tomcat性能指标:吞吐量、响应时间、错误数、线程池、CPU 、内存等。 使用jmeter进行压测,然后观察相关指标 使用命令查看相关指标 01 查看tomcat进程pid ps ef | grep tomcat 02 查看进程的信息 cat /pro/pid/status 03 ...
分类:
其他好文 时间:
2020-01-08 12:43:02
阅读次数:
74
实现Callable接口,通过FutureTask包装器来创建线程,线程池 Callable接口可以提供返回值,比如卖票,卖完了以后可以return一个值回来 需要new一个FutureTask<>对象 泛型是返回值类型 然后通过Thread对象启动传入task对象实现Callable接口的线程对象 ...
分类:
编程语言 时间:
2020-01-08 10:51:58
阅读次数:
101
思路:一个请求创建一个线程 Message消息体 handler简单版(有几个请求创建一个线程) handler改进版(使用线程池创建线程) 测试 ...
分类:
编程语言 时间:
2020-01-08 00:39:13
阅读次数:
119
高并发解决方案与并发编程,线程池,缓存,消息队列,分库分表java系统架构 ...
分类:
编程语言 时间:
2020-01-07 22:43:10
阅读次数:
110