摘要: newFixedThreadPool 一种线程数量固定的线程池,当线程处于空闲状态时,他们并不会被回收,除非线程池被关闭。当所有的线程都处于活动状态时,新的任务都会处于等待状态,直到有线程空闲出来。 /** * 描述:newFixedThreadPool */ public class FixedT 阅读全文
posted @ 2024-01-02 21:04 wangzhilei 阅读(7) 评论(0) 推荐(0) 编辑
摘要: 创建线程池参数 参数名 类型 含义 corePoolSize int 核心线程数,详解见下文 maxPoolSize int 最大线程数,详解见下文 keepAliveTime long 保持存活时间 workQueue BlockingQueue 任务存储队列 threadFactory Thre 阅读全文
posted @ 2024-01-02 20:58 wangzhilei 阅读(4) 评论(0) 推荐(0) 编辑
摘要: 绿色的代表类,蓝色的代表接口,括号中为真正实现类 TokenEndpoint 整个流程入口点,可以理解成controller,它会处理令牌请求。 用授权码模式、密码模式时候,请求的url都是一致的,他是通过grant_type来告知我们使用的是哪种请求模式。他处理/oauth/token请求。当收到 阅读全文
posted @ 2024-01-02 20:51 wangzhilei 阅读(17) 评论(0) 推荐(0) 编辑
摘要: 前后端分离的场景,会采用基于token的认证方式,就需要用到spring security oauth2,是spring-security框架的一个子模块 作为一个服务提供商的角色,需要两大块内容,一个是认证服务器,一个是资源服务器,所谓认证服务器其实可以简单理解为就是生成token的逻辑,所谓资源 阅读全文
posted @ 2024-01-01 19:51 wangzhilei 阅读(54) 评论(0) 推荐(0) 编辑
摘要: 双向链表 阅读全文
posted @ 2022-03-18 10:33 wangzhilei 阅读(5) 评论(0) 推荐(0) 编辑
摘要: Go 语言扩展包中提供了另一种同步原语,它能够在一个服务中抑制对下游的多次重复请求。一个比较常见的使用场景是:我们在使用 Redis 对数据库中的数据进行缓存,发生缓存击穿时,大量的流量都会打到数据库上进而影响服务的尾延时 在资源的获取非常昂贵时(例如:访问缓存、数据库),就很适合使用 golang 阅读全文
posted @ 2022-03-16 15:12 wangzhilei 阅读(99) 评论(0) 推荐(0) 编辑
摘要: 带权重的信号量 golang/sync/semaphore.Weighted,我们可以按照不同的权重对资源的访问进行管理,这个结构体对外也只暴露了四个方法: golang/sync/semaphore.NewWeighted 用于创建新的信号量; golang/sync/semaphore.Weig 阅读全文
posted @ 2022-03-16 15:02 wangzhilei 阅读(103) 评论(0) 推荐(0) 编辑
摘要: 在一组 Goroutine 中提供了同步、错误传播以及上下文取消的功能,我们可以使用如下所示的方式并行获取网页的数据: package main import ( "fmt" "net/http" "golang.org/x/sync/errgroup" ) func main() { var g 阅读全文
posted @ 2022-03-16 14:47 wangzhilei 阅读(234) 评论(0) 推荐(0) 编辑
摘要: 保证在 Go 程序运行期间的某段代码只会执行一次 func main() { o := &sync.Once{} for i := 0; i < 10; i++ { o.Do(func() { fmt.Println("only once") }) } } $ go run main.go only 阅读全文
posted @ 2022-03-16 13:56 wangzhilei 阅读(87) 评论(0) 推荐(0) 编辑
摘要: # 阅读全文
posted @ 2021-12-08 16:25 wangzhilei 阅读(28) 评论(0) 推荐(0) 编辑