我们现在来说什么是ABA问题。假设内存中有一个值为A的变量,存储在地址V中。 此时有三个线程想使用CAS的方式更新这个变量的值,每个线程的执行时间有略微偏差。线程1和线程2已经获取当前值,线程3还未获取当前值。 接下来,线程1先一步执行成功,把当前值成功从A更新为B;同时线程2因为某种原因被阻塞住, ...
分类:
其他好文 时间:
2019-05-19 19:24:31
阅读次数:
173
最近在参加IJCAI-19阿里巴巴人工智能对抗算法竞赛(点击了解),初赛刚刚结束,防御第23名,目标攻击和无目标攻击出了点小问题,成绩不太好都是50多名,由于找不到队友,只好一个人跟一群大佬PK,双拳难敌四手,差点自闭放弃比赛了。由于知道对抗攻击的人很少,于是抽空写篇博客,简单科普一下人工智能与信息 ...
分类:
编程语言 时间:
2019-05-04 21:16:42
阅读次数:
310
let的作用是声明变量,和var差不多。 let是ES6提出的,在了解let之前,最好先熟悉var的原理。 JavaScript有一个机制叫“预解析”,也可以叫“提升(Hoisting)机制”。很多刚接触JavaScript的人都会被这个机制弄混。比如: 在预编译阶段,JavaScript引擎会将上 ...
分类:
编程语言 时间:
2019-03-31 13:41:09
阅读次数:
148
一、基于度量的程序结构分析 基于度量的程序结构分析,主要运用IntelliJ里面自带的Diagram功能生成类关系图,以及Metrics插件进行复杂度分析。 其中复杂度分析相关指标含义如下: Complexity Metrics(复杂度分析) 这部分我们需要使用的主要是方法和类的复杂度分析。 方法的 ...
分类:
其他好文 时间:
2019-03-25 09:12:15
阅读次数:
281
"传送门" 好像还是个比较简单的网络流 说实话我不知道网上双向边建成容量为$2$的为什么是对的,我感觉容量为$1$才是对的啊 然后唯一的坑点就是直接建图$a1$可能会流到$b2$,$b1$可能会流到$a2$,这就会误判 然后交换一组起点和终点就好了,再跑就行了(这也是我看了题解的地方) 代码: c+ ...
分类:
其他好文 时间:
2019-03-24 09:35:49
阅读次数:
123
本文将探讨 socket 客户端的非阻塞式连接,连接成功后的错误判断及退出重连。 1. 连接方法 关于socket 客户端的非阻塞 connect 编程,网上找到的实现方式一般都是, 套接字创建之后,默认是阻塞式的,对其执行 connect 操作,如果服务端在监听,则会成功建立连接,但这只是理想情况 ...
分类:
其他好文 时间:
2019-02-22 16:57:40
阅读次数:
413
1、基本概念 在MySQL中一张表其实是可以支持多个索引的。但是,你写SQL语句的时候,并没有主动指定使用哪个索引。也就是说,使用哪个索引是由MySQL来确定的。 一般在数据库使用的时候回遇到这样的问题,一条本来可以执行很快的语句,却由于MySQL选错了索引,导致执行速度变得很慢。 举例说明: 我们 ...
分类:
数据库 时间:
2019-02-22 12:37:29
阅读次数:
147
1、打印buf出现数据不正确,应该是printf("%x",*buf);十六进制是不能直接像字符串一样打印出来的,必须一个一个打印 2、std::string 的字符串链接函数不能用于含有0的字符串,会导致错误判断字符串长度,丢失数据 3、缺少重要数据结构说明和数据包交互时序文档,经测试,重要的时序 ...
分类:
其他好文 时间:
2019-01-30 22:19:58
阅读次数:
218
事件委托原理:事件冒泡机制; 优点: 1、可以大量节省内存占用,减少事件注册。比如ul上代理所有li的click事件就很不错; 2、可以实现当新增子对象时,无需再对其进行事件绑定,对于动态内容部分尤为适合; 缺点: 事件代理的常用应用应该仅限于上述需求,如果把所有事件都用事件代理,可能会出现事件误判 ...
分类:
其他好文 时间:
2019-01-30 16:14:38
阅读次数:
255
error接口类型;错误判断的3种方法:类型断言,错误值判等,分析错误值;立体的错误类型体系;扁平的错误值列表:带来的问题,两个解决方案
分类:
其他好文 时间:
2019-01-17 23:50:42
阅读次数:
217