基础筑基 基于线程的编程语言中的一些设计 ThreadGroup ThreadGroup是基于线程并发的编程语言中常用的一个概念,当一个线程派生出一个子线程后通常会加入父线程的线程组(未指定线程组的情况下)中, 最后可以通过ThreadGroup来控制一组线程的退出等操作, 然后在go语言中goroutine没有明确的这种parent/children的关系,如果想退出当前调用链上的所有goroutine则需要用到context ThreadLocal 在基于线程的编程语言语言中,通常可以基于T…
基础筑基 在大多数语言中原始map都不是一个线程安全的数据结构,那如果要在多个线程或者goroutine中对线程进行更改就需要加锁,除了加1个大锁,不同的语言还有不同的优化方式, 像在java和go这种语言其实都采用的是链表法来进行map的实现,本文也主要分析这种场景 并发安全的map实现的三种方式 在go语言中实现多个goroutine并发安全访问修改的map的方式,主要有如下三种: 实现方式 原理 适用场景 map+Mutex 通过Mutex互斥锁来实现多个goroutine对map的串行化…
1. 锁的基础概念 1.1 CAS与轮询 1.1.1 cas实现锁 在锁的实现中现在越来越多的采用CAS来进行,通过利用处理器的CAS指令来实现对给定变量的值交换来进行锁的获取 1.1.2 轮询锁 在多线程并发的情况下很有可能会有线程CAS失败,通常就会配合for循环采用轮询的方式去尝试重新获取锁 1.2 锁的公平性 锁从公平性上通常会分为公平锁和非公平锁,主要取决于在锁获取的过程中,先进行锁获取的线程是否比后续的线程更先获得锁,如果是则就是公平锁:多个线程按照获取锁的顺序依次获得锁,否则就是非…
1.session session存储了特定用户会话所需的属性及配置信息,这样,当用户在应用程序的 Web 页之间跳转时,存储在 session 对象中的变量将不会丢失,而是在整个用户会话中一直存在下去.当用户请求到来时,如果该用户还没有会话,则自动创建一个 session .当会话过期或被放弃后,服务器将终止该会话. session在flask已经被封装好了,直接from flask import session即可,这个session是一个<class 'werkzeug.local.Loc…
摘要: 原创出处 https://www.cnkirito.moe/spring-security-4/ 「老徐」欢迎转载,保留摘要,谢谢! 4 过滤器详解 前面的部分,我们关注了Spring Security是如何完成认证工作的,但是另外一部分核心的内容:过滤器,一直没有提到,我们已经知道Spring Security使用了springSecurityFilterChain作为了安全过滤的入口,这一节主要分析一下这个过滤器链都包含了哪些关键的过滤器,并且各自的使命是什么. 4 过滤器详解 4.…
requests库是python爬虫使用频率最高的库,在网络请求中发挥着重要的作用,这边文章浅析requests的API源码. 该库文件结构如图: 提供的核心接口在__init__文件中,如下: from . import utils from . import packages from .models import Request, Response, PreparedRequest from .api import request, get, head, post, patch, put,…
游戏背景 <球球大作战>是Superpop一款自主研du发的免费手机网络游戏. 以玩家间的实时互动PK产生游戏乐趣为设计宗旨,通过简单的规则将玩家操作直接转化为游戏策略,体验智谋碰撞的战斗乐趣. 游戏的基本操作包括键盘按下(上下左右四个方向,还有作弊测试按键空格键和A键),玩家可以在地图上随意移动,不过不能超出边界.不管是玩家还是AI都可以吃比自己小的球,反之也可以被吃,吃掉之后直径会增大,增大算法是被吃掉的半径的1/4.如果玩家被吃掉,会在任意地方重新开始. 那么今天,我们就用C语言,来写出…
大家好,我是小贺. 点赞再看,养成习惯 文章每周持续更新,可以微信搜索「herongwei」第一时间阅读和催更,本文 GitHub https://github.com/rongweihe/MoreThanCode 已经收录,有一线大厂面试点思维导图,也整理了很多我的文档,欢迎 star 和完善.一起加油,变得更好! 1.前言 天下大事,必作于细. 源码之前,了无秘密. 你清楚下面这几个问题吗? 调用 new 和 delete 时编译器底层到底做了哪些工作? STL 器底层空间配置原理是怎样的?…
9点半了,刚写到1.2.   该回家了,明天继续写完. 大家还需要什么操作,留言说一下,没有的我明天继续加. 好久没有玩DevExpress了,今天下载了一个玩玩,发现竟然更新到14.2.5了..我去. 本章主题: 创建项目,窗体搭建 给RichEditControl添加工具条 创建自定义的工具条按钮项 图片解析操作 修正文档字体 内容搜索功能 导入导出功能(文本/HTML/Word) 官方相关API 废话不多说,进入正题. 一.创建项目,窗体搭建 1.新建C#.NET WinForms应用程序…
部分类库代码:http://referencesource.microsoft.com/download.html 运行时clr源码: http://www.microsoft.com/en-us/download/confirmation.aspx?id=4917…