代码改变世界

Android中removeCallbacks失效原因

2011-11-07 12:03 by IanWong, 6276 阅读, 0 推荐, 收藏, 编辑
摘要:在Android开发中会使用Handle的removeCallbacks函数,该函数功能为: 但实际工作中有时会出现removeCallbacks无效,解决它。 图:两个按钮,一个将Runnable加到消息队列中,一个将Runnable从消息队列中移除。该Runnable每3秒钟打印一次日志。 码: 结果: (1)start –> 输出 –> end –> 停止输出 ... 阅读全文

多线程编程同步机制之临界区编程实例

2011-11-01 13:35 by IanWong, 687 阅读, 0 推荐, 收藏, 编辑
摘要:临界区的基本概念 临界区:在同一个进程内的多个线程之间通过原子方式实现共享资源的串行化读写。 临界区相关函数 CRITICAL_SECTION cs; ::InitializeCriticalSection(&cs); ::EnterCriticalSection(&cs); ::LeaveCriticalSection(&cs); ::DeleteCriticalSection(&cs)... 阅读全文

多线程编程同步机制之互斥量编程实例

2011-11-01 13:35 by IanWong, 301 阅读, 0 推荐, 收藏, 编辑
摘要:互斥量的基本概念 互斥量:在不同进程内的多个线程之间通过原子方式实现共享资源的串行化读写。 互斥量编程实例 实例一:同一进程内不同线程之间互斥量使用方法 输出结果(注掉12,15,没有进行互斥量同步): 输出结果(互斥量同步): 实例二:不同进程内不同线程之间互斥量使用方法 阅读全文

详细解析i++与++i

2011-07-21 14:16 by IanWong, 537 阅读, 0 推荐, 收藏, 编辑
摘要:i++与++i是特殊的自增运算,类似的还有自减操作运算i--与--i。下面从C与C++两个角度来比较这两种形式的运算方式。 1.C中 简单的地说,++i和i++,作为一个语句单独使用时(如i++;或者++i;),就是i = i + 1,它们之间没有区别。而在作为语句的一部分时,a = ++i相当于i = i + 1; a = i;通过表达式就可以看出,因为++在前,所以是先执行加1操作,再执行赋... 阅读全文

策略模式的扩展——策略枚举

2011-05-12 18:26 by IanWong, 271 阅读, 0 推荐, 收藏, 编辑
摘要:策略枚举就是这样一个枚举: 它是一个枚举。 它是一个浓缩了的策略模式的枚举。 public enum Calculator { //加法运算 ADD("+"){ public int exec(int a,int b){ return a + b; } }, //减法运算 SUB("-"){ public ... 阅读全文