背景 最近对接一个TCP协议,这个协议定义的非常好,有头标识和校验位!但是,接口提供方定的通信协议还是欠缺考虑...正常情况下,这个协议是没有问题的,但是在高并发的情况下,客户端方就需要点真功夫了。 分析 该通信协议中,没有使用事务号,也就是说,用同一条连接连续发送两次请求,你不知道返回的响应数据是 ...
1.先建立一个Winform工程 2.添加一个C++动态链接库项目 3.添加一个纯c++静态库(LIB)项目 4.向静态库中添加一个类PureCClass 功能,计算两个数的和 .h文件 class PureCClass { public: PureCClass(); ~PureCClass(voi ...
分类:
编程语言 时间:
2020-01-30 23:22:01
阅读次数:
142
threading模块用于操作线程,python当前版本的多线程库没有实现优先级、线程组,线程也不能被停止、暂停、恢复、中断,这些功能可在代码中自行实现。 threading模块提供的类: Thread, Lock, Rlock, Condition, [Bounded]Semaphore, Eve ...
分类:
其他好文 时间:
2019-12-21 20:38:11
阅读次数:
83
死锁 指两个或两个以上的进程或线程在执行过程中,因争夺资源而造成的一种互相等待的现象,若无外力作用,它们都将无法推进下去。此时称系统处于死锁状态或系统产生了死锁,这些永远在互相等待的进程称为死锁进程 递归锁: 解决死递归方法 python提供了可重入锁RLock RLock内部维护着一个Lock和一 ...
分类:
其他好文 时间:
2019-10-23 19:47:27
阅读次数:
58
前言: 在go语言中 map 是很重要的数据结构。Map 是一种无序的键值对的集合。Map 最重要的一点是通过 key 来快速检索数据,key 类似于索引,指向数据的值。问题来了,这么安逸的 数据结构,它不是协程安全的 !当多个 协程同时对一个map 进行 读写时,会抛出致命错误。总结一下 想要 做 ...
分类:
编程语言 时间:
2019-10-13 12:51:54
阅读次数:
66
递归锁 互斥锁 递归锁 死锁 死锁就是在使用互斥锁的时候,同时开启了两把锁,就会导致死锁问题 因为同一时间只能由一个线程打开锁,然后关闭锁之后才可以去有另外一个线程去执行锁 就是一个线程还没有释放一个锁,但是另一个线程已经拿到了其他锁的钥匙,导致第一个执行的线程没办法拿到下一个锁的钥匙,也没办法执行 ...
分类:
其他好文 时间:
2019-09-18 17:40:01
阅读次数:
96
1. 临界区加排他锁(Go sync.Mutex.Lock()) 如果并发量大,锁竞争激烈,会导致性能开销大 2. 读多写少场景,使用读写锁(Go sync.Mutex.RLock()) 支持并发读,但写锁会block住读和写,读多场景性能会好很多 3. 对计数使用CAS操作(Go sync.ato ...
分类:
其他好文 时间:
2019-09-14 16:16:41
阅读次数:
108
并发与锁 a. 多个线程共享数据的时候,如果数据不进行保护,那么可能出现数据不一致现象,使用锁,信号量、条件锁 b. c.互斥锁1. 互斥锁,是使用一把锁把代码保护起来,以牺牲性能换取代码的安全性,那么Rlock后 必须要relase 解锁 不然将会失去多线程程序的优势2. 互斥锁的基本使用规则: ...
分类:
编程语言 时间:
2019-09-10 01:05:30
阅读次数:
125
2019/8/27_第1次修改 ccb_warlock 写这篇文章的起源是最近引入了resharp,在写三目运算符的逻辑时提示了可优化的内容,琢磨了一下就有了下面的内容。 举例,假设User实体定义如下: 业务场景:创建新的用户记录时,需要获取新的数据号自增1(OrderIndex ),初始从1开始 ...
分类:
其他好文 时间:
2019-08-27 09:13:25
阅读次数:
354
2019年8月15日星期四 一. 线程互斥方式 - 互斥锁。 1. 什么是互斥锁?特点如何? 互斥锁是专门用于处理线程互斥的一个方式,它有两种状态:上锁状态/解锁状态。 特点:如果处理上锁状态,则不能再上锁,直到解锁为止才能再上锁。如果是处于解锁状态,则不能再解锁了,直到上锁了才能再解锁。 2. 关 ...
分类:
其他好文 时间:
2019-08-15 19:25:51
阅读次数:
98