以多窗口买票为例。 多线程操作共享数据存在安全问题。 是由于数据操作的原子性被破坏导致的。 if语句和之后的operate语句应该具有原子性。没有锁,在if 与 operate 之间可能数据被其他线程修改了。导致数据安全问题。 导致原子性丢失的原因有多个,比如线程自己阻塞,cpu资源调度导致线程挂起 ...
分类:
编程语言 时间:
2020-10-20 16:44:08
阅读次数:
42
QT、C++插件式框架、主要原理还是 动态库的动态加载、 dlopen()函数、下面为动态加载拿到Plugininstance对应指针、void**pp=(void**)dlsym(handle,"Plugininstance"); 功能:添加单个插件参数:libName:添加名为libName的插 ...
分类:
编程语言 时间:
2020-10-20 16:32:45
阅读次数:
26
1、日志的级别 日志一共分为5个等级,从低到高分别是: 级别说明 DEBUG 输出详细的运行情况,主要用于调试。 INFO 确认一切按预期运行,一般用于输出重要运行情况。 WARNING 系统运行时出现未知的事情(如:警告内存空间不足),但是软件还可以继续运行,可能以后运行时会出现问题。 ERROR ...
分类:
编程语言 时间:
2020-10-20 16:28:53
阅读次数:
33
结论:根据维基百科里说的,应该是为了保持不改变CPU位数的情况下,让CPU支持访问更大的内存地址。 【1978年的Intel 8086开始引入了内存分段。这使得16位CPU可以访问超过64 KB (65,536字节)的内存】 【为了使用16字节寄存器访问20字节地址,整个内存被划分为多个区块】 关于 ...
分类:
其他好文 时间:
2020-10-20 16:27:32
阅读次数:
23
主要的概念有: 类: 属性:就是变量,属性是在__init__的方法里,以参数的形式定义 方法:函数,行为 class Student(object);##类 ##这个属性直接定义在类里,是一个元组,用来规定对象可以存在的属性 __slots__(‘name’,'age','height') def ...
分类:
编程语言 时间:
2020-10-20 16:17:32
阅读次数:
22
Raft 算法使用一个随机计时器来选举领导者。这种方式只是在任何一致性算法都必须实现的心跳机制上增加了一点机制,在解决冲突的时候会更加简单快捷。 ...
分类:
编程语言 时间:
2020-10-19 22:19:08
阅读次数:
28
性能测试指标,简单来说就是“多快好省” 多-并发量 系统用户数:注册的用户数据储存在磁盘,主要跟磁盘有关系 在线用户数:主要跟内存有关系,一个用户在线就得保持session(会话),会话占用内存 并发用户数:行为相同的并发、行为不同的并发 性能拐点 吞吐量 快-延迟、响应时间,客户感知的时间,是端到 ...
分类:
其他好文 时间:
2020-10-18 17:10:12
阅读次数:
29
介绍下Web、app、H5、小程序测试 一、Web测试: 功能测试:刷新、回退、前进、翻页、页面加载、url 兼容测试:不同的浏览器内核进行测试(IE、chrome、Firefox) 性能测试:web项目需监测响应时间、CPU、内存 H5测试: Web要在电脑端测试,H5可以在电脑端和手机浏览器测试 ...
分类:
微信 时间:
2020-10-18 16:50:16
阅读次数:
42
函数的两个阶段做的事情 + 函数定义阶段 1. 开辟一个空间 2. 把代码一摸一样的存储进去(不解析变量) 3. 把空间地址赋值给变量名(函数名) + 函数调用阶段 1. 按照地址找到空间 2. 形参赋值 3. 预解析 4. **在内存中单独开辟一个空间** 5. **把之前存储的代码拿出来放在这个 ...
分类:
其他好文 时间:
2020-10-18 16:43:07
阅读次数:
18
0x01.什么是线程? 1、线程是附属在进程上的执行实体,是代码的执行流程 进程 本身是空间上的概念,代表4GB的虚拟内存,线程代表着时间概念,也就是说,线程是当前运行的代码 在某个时间点只能有一段代码执行,但是cpu切换的快,所以看着像同时运行,这是单核的,所以单核的情况下并不是真正的多线程 因为 ...
分类:
编程语言 时间:
2020-10-18 16:30:28
阅读次数:
13