1、Java SE Java基础 数据类型/常量与变量 标识符/关键字/运算符/流程控制 数组/方法 类和对象 成员变量/局部变量 匿名对象/this关键字/构造方法 封装/继承/多态 抽象/接口/内部类 集合 Java高级 线程/锁 JDK 反射 JVM GC IO和NIO,AIO 2、JAVA ...
分类:
编程语言 时间:
2020-09-18 02:19:16
阅读次数:
40
上篇文章(限流算法与Guava RateLimiter解析)对常用的限流算法及Google Guava基于令牌桶算法的实现RateLimiter进行了介绍。RateLimiter通过线程锁控制同步,只适用于单机应用,在分布式环境下,虽然有像阿里Sentinel的限流开源框架,但对于一些小型应用来说未 ...
分类:
其他好文 时间:
2020-07-31 12:31:48
阅读次数:
74
问题:程序有多少临界资源?需要多少线程锁? 临界资源是没有任何的限制 一般性原则:每一个临界资源都需要一个线程锁进行保护(一 一对应) 线程A和线程B获取线程锁的顺序是不一样的。 线程的死锁概念 -线程间相互等待临界资源而造成彼此无法继续执行 发生死锁的条件: -系统中存在多个临界资源且临界资源不可 ...
分类:
编程语言 时间:
2020-07-27 09:36:52
阅读次数:
75
值得思考的问题: 多个线程除了在时序上可能产生相互依赖,在其他方面是否也可能产生相互依赖呢? 生产消费者问题:-有n个生产者同时制造产品,并把产品存入仓库中 -有m个消费者同时需要从仓库中取出产品 -规则: 当仓库未满,任意生产者可以存入产品 当仓库未空,任意消费者可以取出产品 编程实验:生产消费者 ...
分类:
编程语言 时间:
2020-07-26 22:50:37
阅读次数:
60
线程数据不安全现象 from threading import Thread n = 0 def add(): for i in range(500000): global n n += 1 def sub(): for i in range(500000): global n n -= 1 t_l ...
分类:
编程语言 时间:
2020-07-26 15:44:32
阅读次数:
64
线程锁 自旋锁:为了不放弃CPU执行事件,循环的使用CAS技术对数据尝试进行更新,直到成功。 悲观锁:假定会发生并发冲突,同步所有对数据的相关操作,从数据就开始上锁。 乐观锁:假定没有冲突,在修改数据时如果数据发现和之前获取的不一致,则读最新数据,修改后重新修改。 独享锁(写):给资源加上写锁,线程 ...
分类:
编程语言 时间:
2020-07-22 11:25:38
阅读次数:
64
void func(int i, double d, const string& s) { cout << i << ", " << d << ", " << s << endl; } int main() { thread t(func, 1, 12.50, "sample"); t.join() ...
分类:
编程语言 时间:
2020-07-08 19:59:08
阅读次数:
81
Python中的线程锁 前言 本章节继续探讨threading模块下关于锁的应用,注意。这一期很重要,依然是围绕着理论篇来讲,这一章节主要围绕理论篇中的线程切换做讲解,因此一定要有一些线程切换方面的知识。 官方中文文档 线程安全 线程安全是多线程编程时的计算机程序代码中的一个概念。在拥有共享数据的多 ...
分类:
编程语言 时间:
2020-07-01 22:09:58
阅读次数:
60
1 """ 2 线程锁 3 我这用的是python3.7,必须要加锁才可以保证数据的确定性 4 """ 5 import time 6 from threading import Thread, Lock 7 8 lock = Lock() 9 10 list1 = [0] * 10 11 12 1 ...
分类:
编程语言 时间:
2020-05-31 11:09:57
阅读次数:
68
以下均整理自网络 Java SE 1. Java基础 1. 语法特性 2. 关键字 3. 面向对象 4. 集合部分 2. Java进阶 1. 线程 2. 锁 3. JDK 4. 反射 5. JVM 6. GC 7. IO和NIO,AIO Java EE 1. Spring 1. AOP与事务,权限控 ...
分类:
编程语言 时间:
2020-05-16 16:40:57
阅读次数:
137