
并发编程高级篇
文章平均质量分 94
并发编程高级篇
pngyul
我的生活不只有coding,还有看不懂的诗和去不了的远方。
展开
-
并发设计模式(三)重要
三种最简单的分工模式 并发编程领域里,解决分工问题也有一系列的设计模式,比较常用的主要有 Thread-Per-Message 模式、Worker Thread 模式、生产者 - 消费者模式等等。 Thread-Per-Message 模式 在编程领域也有很多类似的需求,比如写一个 HTTP Server,很显然只能在主线程中接收请求,而不能处理 HTTP 请求,因为如果在主线程中处理 HTTP 请求的话,那同一时间只能处理一个请求,太慢了!怎么办呢?可以利用代办的思路,创建一个子线程,委托子线程去处理 H原创 2022-05-05 10:37:22 · 338 阅读 · 0 评论 -
并发设计模式(二)
多线程版本的 If Guarded Suspension模式 Guarded Suspension模式也被叫做Guarded Wait 模式,我也更倾向这种叫法。实际上,本质就是是一种等待唤醒机制的实现。 我觉得这个模式比较经典的一个应用是异步转同步(比如Dubbo 中 DefaultFuture 这个类也是采用的这种方式) 又比如用户通过浏览器发过来一个请求,而服务调用方A接受到这个请求,而这个请求需要请求其它服务提供方B的某个接口来返回结果。然而这个服务B暴露出来的交互方式并不是Http的方式,而是通过原创 2022-05-04 19:35:41 · 267 阅读 · 0 评论 -
并发设计模式(一)
避免共享的设计模式 随便扯扯,刚开始我学到这里的时候,我有点茅舍顿开的感觉。怎么说呢,比如我现在呆的公司,有一个批量导出订单excel的功能。这个功能前员工已经实现了,当时我在阅读这部分代码的时候就觉得写这个代码的人很吊。他在代码中,利用多线程并发的批量请求数据,多线程封装符合导出格式的数据,而此时,他不是直接就写到excel中,而是先到一个阻塞队列中,然后另外开一个线程从队列中读数据写入到excel中(还有很多细节)。当时我就在想,他是怎么想到这种处理方式。原来这就是一种并发设计模式,就是下面会讲到的生产原创 2022-05-03 18:18:03 · 685 阅读 · 0 评论