摘要: SchedulingQueue是kubernetes scheduler中负责进行等待调度pod存储的对,Scheduler通过SchedulingQueue来获取当前系统中等待调度的Pod,本文主要讨论SchedulingQueue的设计与实现的各种实现, 了解探究其内部实现与底层源码,本系列代码 阅读全文
posted @ 2020-01-13 11:04 8小时 阅读(1258) 评论(0) 推荐(0) 编辑
摘要: 资源调度基础 scheudler是kubernetes中的核心组件,负责为用户声明的pod资源选择合适的node,同时保证集群资源的最大化利用,这里先介绍下资源调度系统设计里面的一些基础概念 基础任务资源调度 基础的任务资源调度通常包括三部分: | 角色类型 | 功能 | | | | | node 阅读全文
posted @ 2020-01-09 17:15 8小时 阅读(905) 评论(0) 推荐(1) 编辑
摘要: 基础筑基 基于线程的编程语言中的一些设计 ThreadGroup ThreadGroup是基于线程并发的编程语言中常用的一个概念,当一个线程派生出一个子线程后通常会加入父线程的线程组(未指定线程组的情况下)中, 最后可以通过ThreadGroup来控制一组线程的退出等操作, 然后在go语言中goro 阅读全文
posted @ 2020-01-06 10:41 8小时 阅读(719) 评论(0) 推荐(0) 编辑
摘要: 基础筑基 在大多数语言中原始map都不是一个线程安全的数据结构,那如果要在多个线程或者goroutine中对线程进行更改就需要加锁,除了加1个大锁,不同的语言还有不同的优化方式, 像在java和go这种语言其实都采用的是链表法来进行map的实现,本文也主要分析这种场景 并发安全的map实现的三种方式 阅读全文
posted @ 2019-12-30 01:16 8小时 阅读(1082) 评论(0) 推荐(1) 编辑
摘要: 1. 锁的基础概念 1.1 CAS与轮询 1.1.1 cas实现锁 在锁的实现中现在越来越多的采用CAS来进行,通过利用处理器的CAS指令来实现对给定变量的值交换来进行锁的获取 1.1.2 轮询锁 在多线程并发的情况下很有可能会有线程CAS失败,通常就会配合for循环采用轮询的方式去尝试重新获取锁 阅读全文
posted @ 2019-12-23 09:36 8小时 阅读(782) 评论(1) 推荐(1) 编辑