- 博客(13)
- 资源 (19)
- 收藏
- 关注
原创 工作刚好满5年了,进入第6个年头
今天是7月29日, 好熟悉的日子。 2013年7月下旬, 从广州毕业,来到深圳, 然后在7月29日正式入职一家公司。第一次正式踏入职场,心有忐忑, 也有期待。 时间真的过得好快, 今天都2018年7月29日了, 一晃5年。 当时一起入职的涛哥,亮哥,还有勇哥, 也都在各奔前程, 忙碌着。 5年了,也常内心自问, 在职场成长了没, 钱袋鼓了一点没? 当年...
2018-07-29 13:00:05 5943 6
原创 hash table(哈希表)的拉链法程序
哈希表拉链法,简单,直接看代码:#include <iostream>using namespace std;struct Node{ int iData; Node* pNext;};#define N 10typedef Node* HashTable[N]; // 指针数组HashTable hTable;void c...
2018-07-29 11:33:38 4439 4
原创 从http 414(Request-URI Too Long)说起------RFC并未限制URL的长度
在一些服务器中, 如果url过长, 会产生414错误(依赖于具体实现)。 也有很多人认为,get参数有长度限制, post没有限制。对吗? 显然不对。 实际上, RFC并未规定url长度, 只是浏览器和服务器实现的时候, 对url的长度加了限制而已。 来看看: The HTTP protocol does not place ...
2018-07-28 17:02:26 15553 1
原创 关于全局唯一id的一些思考
在实际工作中,经常会涉及到生成全局唯一id的问题, 比如用户id,比如某个分享动作的id, 当然, 还有其他更多的情形。本文简单聊一下。 方案一: 利用数据库自增序列 这种方案我在实际开发中用过好几次, 在mysql中,可以设置一个自增字段, 每次insert一条后, 都会生成一个自增的id. 优点: 寄托于数据库, 简单, 而且id自...
2018-07-28 15:43:43 4827 1
原创 盗链与防盗链简介------结合阿里云oss存储来介绍
第一次听说防盗链的时候,是懵逼的, 什么? 防盗链? 是防止盗窃的锁链吗? 多少钱一根? 我想买一根! 呵呵哒。看完本文后, 就应该会明白了。 虽是做后台开发, 但发现web这块也挺有意思的, 本来想写点盗链与防盗链, 但发现阿里云资料很好, 所以就不自己重复写了, 直接搬过来学习和分享, 感谢阿里云。该文的两个思路分别是refer和token, 这也是防盗链最常用...
2018-07-28 13:35:24 13511 3
原创 多线程操作C++ STL vector出现概率coredump问题分析------切勿对STL 容器的线程安全性有不切实际的依赖!
多线程操作全局变量,必须考虑同步问题,否则可能出现数据不一致, 甚至触发coredump. 前段时间, 遇到一个多线程操作了全局的vector的问题, 程序崩了。场景是这样的:某全局配置参数保存在一个vector中,需要定时更新(更新线程), 另外的工作线程去读取配置。 这种场景是非常普遍的。 在该场景中,程序没有枷锁,概率coredump, 实际情...
2018-07-27 21:48:03 10542 3
原创 重放攻击与幂等性------从最近被重复扣款26元说起
本周二, 去外面吃了个饭, 扫码点餐,微信支付, 成功付款26元, 但页面提示失败, 且提示让我稍等, 不要尝试继续支付。 等了一会儿,没有结果。 店里人很多, 没来得问是什么情况, 就再次支付了, 第二次成功。当我查看微信支付记录的时候, 发现扣款两次了。 1分钟后, 另外一个吃饭的人, 也反馈了这个问题, 我们找老板反馈, 老板同意退钱, 甚好。 其实, 这种重复扣款的问题, 是...
2018-07-22 15:04:52 5840 2
转载 巧用CAS解决数据一致性问题
转载地址:https://www.cnblogs.com/sheldon-blog/p/8109900.html 缘起:在高并发的分布式环境下,对于数据的查询与修改容易引发一致性问题,本文将分享一种非常简单但有效的优化方法。 一、业务场景业务场景为,购买商品的过程要对余额进行查询与修改,大致的业务流程如下:(1)从数据库查询用户现有余额 SELECT mone...
2018-07-22 12:01:16 4248 2
原创 理解CAS与__sync_bool_compare_and_swap
CAS是compare and swap, 简单来说就是,在写入新值之前, 读出旧值, 当且仅当旧值与存储中的当前值一致时,才把新值写入存储。__sync_bool_compare_and_swap是可供程序员调用的接口, 为什么需要CAS呢? 一起来看下: 让10个线程执行加法操作, 看看最简单的版本:#include <stdio.h>#in...
2018-07-21 23:29:43 20279 14
原创 我的历届世界杯记忆
以前经常聊乒乓球,今天来说足球, 尽管我十年才踢一次。 周日,小雨, 今夜,世界杯,决赛。 俄罗斯在疯狂。 2002年,还不知道什么是世界杯, 只是从英语课本中知道, 有一个人叫罗纳尔多, 踢足球的, 很厉害。 英语课本上的另外一个球星是乔丹,搞篮球的。那一年,家里也没有有线电视, 而且我也几乎不看电视, 是一个十足捣蛋又热爱学习的人。 ...
2018-07-15 13:59:43 5328 5
原创 字符数组的压缩程序
周六,小雨,写个字符压缩代码,来玩一下。 压缩示例:a b b c c c d e ea b 2 c 3 d e 2a b b c c c d e fa b 2 c 3 d e faaa ba ba aa 2a a aa 3 代码:#include <iostream>#include <cassert>using n...
2018-07-14 11:43:39 5288 3
原创 很多人居然以为select/poll/epoll是用来实现后台服务并发的?
网上资料,很多都是以讹传讹,到处复制粘贴,不可尽信。 我们需要有自己的判断。 来说说后台服务模型: 1. 迭代服务器 简单说,就是在while中循环accept, 然后处理。显然, 这种服务是没有并发功能的, 后一个请求必须等前一个请求处理完毕, 才会被处理。 2. 多线程模型 简单说, 在while循环中...
2018-07-07 15:02:26 9361 29
原创 用linux perf命令来分析程序的cpu cache miss现象
先来看一段简单的程序:#include <stdio.h>#include <unistd.h>int main(int argc, char **argv){ int a[1000][1000]; if(1 == argc) { for(int i = 0; i < 1000; ++i) { for(int j = 0; j ...
2018-07-05 22:24:05 19645 3
linux protobuf安装文件
2016-11-04
linux tree命令的源码
2015-11-01
编译好的openssl库和头文件
2014-12-14
入门数据库sqlite3的最佳实践资料
2014-08-12
在Windows下学习Linux命令
2013-08-08
音频处理软件Gold Wave
2013-07-17
H.264visa软件
2013-07-13
YUVviewer :原始的YUV视频的播放器
2013-06-24
经典的C语言编译器:TC2.0
2013-06-23
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人