hengyunabc的专栏

日落黄金台金黄落日 -- 横云断岭

C++11的thread代码分析

本文分析的是llvm libc++的实现:http://libcxx.llvm.org/ class thread thread类直接包装了一个pthread_t,在linux下实际是unsigned long int。 class thread { pthread_t __t...

2014-06-29 20:50:57

阅读数:10178

评论数:0

移动App该如何保存用户密码

移动App该如何保存用户密码? 这个实际上和桌面程序是一样的。 先看下一些软件是如何保存用户密码的: 我们先来看下QQ是怎么保存密码的: 参考:http://bbs.pediy.com/archive/index.php?t-159045.html, 桌面QQ在2012的时候把密码md5计算...

2014-06-28 14:15:01

阅读数:44361

评论数:11

C++11中的mutex, lock,condition variable实现分析

本文分析的是llvm libc++的实现:http://libcxx.llvm.org/ C++11中的各种mutex, lock对象,实际上都是对posix的mutex,condition的封装。不过里面也有很多细节值得学习。 std::mutex 先来看下std::mutex: 包增了一个pt...

2014-06-22 22:57:32

阅读数:9571

评论数:1

C++11中once_flag,call_once实现分析

本文的分析基于llvm的libc++,而不是gun的libstdc++,因为libstdc++的代码里太多宏了,看起来蛋疼。 在多线程编程中,有一个常见的情景是某个任务只需要执行一次。在C++11中提供了很方便的辅助类once_flag,call_once。 声明 首先来看一下once_flag和...

2014-06-22 01:29:00

阅读数:6322

评论数:1

写程序很难之去除字符串的空白字符

在做性能调优时,用JProfiler测试Web应用的性能,发现有个replaceBlank函数占用了10%的CPU时间,进去看了下,是个简单的用正则去除XML文档里空白字符串的功能。但是这个简单功能却消耗了10%的性能。 在Web应用里,去掉空白字符串,似乎是个简单的功能,但是真正写起来,却也有些...

2014-06-16 02:51:44

阅读数:4792

评论数:0

Java的LockSupport.park()实现分析

LockSupport类是Java6(JSR166-JUC)引入的一个类,提供了基本的线程同步原语。LockSupport实际上是调用了Unsafe类里的函数,归结到Unsafe里,只有两个函数: public native void unpark(Thread jthread); pu...

2014-06-03 02:52:12

阅读数:22791

评论数:5

并行编程之条件变量(posix condition variables)

在整理Java LockSupport.park()的东东,看到了个"Spurious wakeup",重新梳理下。 首先来个《UNIX环境高级编程》里的例子: #include struct msg { struct msg *m_next; /* ... more s...

2014-06-02 00:24:44

阅读数:4538

评论数:2

提示
确定要删除当前文章?
取消 删除
关闭
关闭