首页
学习
活动
专区
工具
TVP
发布

EffectiveCoding

专栏作者
113
文章
97370
阅读量
28
订阅数
Java Concurrent Executor
在说Executor前, 先来看一下线程创建的几种方式: 1、继承Thread类创建线程 2、 实现Runable接口创建线程 3、使用Callable和Future 创建线程 4、使用Executor线程池 这几种方式是存在一定程度上的差异,首先Thread则是最原始的,创建线程执行对应的业务代码,Runable是完成了一个任务的的执行,然后Callable和Runable类似,但是提供了Future来实现了一种回调方式。这三种方式总体来说是比较原始的,线程无法复用,线程及任务管理复杂。而Executor 了为了解决这些类似的问题而实现的。
邹志全
2019-07-31
4500
Go 并发实战--限流算法
高并发系统为了服务的可用性面对高流量及qps高峰时通常有三种常见的应对措施:缓存、降级和限流。这一篇我们来看一下限流及go相应的实现。 限流算法通常有这么几种:计数器、令牌痛、漏桶,这几个算法的优缺点在这里就不多说了,网上有大量的文章介绍这几个算法,大家也可以借鉴我限流算法的那篇文章。 这里就这几种算法的思想借助go的API来实现一下:
邹志全
2019-07-31
1K0
Go 并发实战--协程浅析 二
继续上一篇的内容,我们介绍了go协程的实现中的几个核心的对象,也说了他们之间是如何合作工作的。
邹志全
2019-07-31
2860
Go 并发实战 -- sync Once
Once是一个非常实用的API,它保证了一个事情仅做一次,这个在许多场景非常有用,所以Once也是go提供的为数不多的API之一。
邹志全
2019-07-31
5610
Java Concurrent Atomic实现原理&源码解读(JDK 10)
JDK 10,可以说是很新了,比起JDK 8更新了不少实现,比如说下面会讲到VarHandle
邹志全
2019-07-31
7480
Go 语言基础--strings&strconv 浅析
string 是日常开发中最常用的一个结构,string 相关工具主要有strings & strconv,本篇就来看看这个两个工具。
邹志全
2019-07-31
2820
Go 并发实战 -- sync Pool
sync包中最后一个要说的API是sync.Pool,本质上来说Pool应该不算是sync并发相关的内容,但是既然放在sync里了,并且在并发场景下共用一些对象其实还挺常见的,就一起说一下吧。 Pool目的是对象的共用,解决的是减少内存的占用及GC频发带来的性能损耗,对于一些大对象,或者构造代价高的对象还是很有必要通过pool来缓存的。
邹志全
2019-07-31
4740
Go 并发实战 -- sync Map
Java中线程安全的map主要有HashTable、ConcurrentHashMap,go中线程安全的Map就是sync.Map。在单协程访问时我们使用map就可以了,但是在多个协程并发访问时要使用协程安全的sync.Map,原生的map会报错。 常见的并发安全的map实现思路有HashTable那种直接锁死函数,性能比较差,或者说老ConcurrentHashMap那样分段加锁,亦或者像是像是新concurrenthashmap那种cas操作。 实际上sync.Map这三种思路都没选(因为多核情况下cache contention,reflect.New、sync.RWMutex都比较慢),sync.Map追求更好的性能和稳定性,实现思路主要面向多读少写的情况,所以写性能其实比较一般。
邹志全
2019-07-31
5370
Go 并发实战 -- sync Mutex
在并发编程中我们可以使用channel来协同各个goroutine,但是很多场景我们也是需要使用sync的比如说并发场景下计数器的使用等。 go也为我们提供了一系列的API来协同我们的go协程:
邹志全
2019-07-31
1K0
没有更多了
社区活动
腾讯技术创作狂欢月
“码”上创作 21 天,分 10000 元奖品池!
Python精品学习库
代码在线跑,知识轻松学
博客搬家 | 分享价值百万资源包
自行/邀约他人一键搬运博客,速成社区影响力并领取好礼
技术创作特训营·精选知识专栏
往期视频·千货材料·成员作品 最新动态
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档