AsyncTask、ORMLite、Volley、ImageLoader 线程池: 线程池的优点: 1 重用线程,避免过分开销 2 控制线程最大的并发数 3 对线程进行简单的管理 AsyncTask=线程池+handler ORMLite 线程池 加锁syncronized 保证增删改查的时候,数据 ...
分类:
移动开发 时间:
2017-02-20 07:37:15
阅读次数:
220
postgres开发实践中遇到一个问题: 1) A用户在执行一条语句 2) B用户执行语句查询相同的表 会发现B用户始终处于等待状态. 跟踪会发现A进程等待时进程堆栈如下: B进程堆栈如下: 导致这个现象的原因是因为在我们在 解析parse的时候就开始加锁了, 直到portal执行完才将此锁释放。而 ...
分类:
其他好文 时间:
2017-02-19 13:55:42
阅读次数:
548
参考: http://blog.csdn.net/hll814/article/details/50816268 http://blog.csdn.net/blues1021/article/details/44336835 一、通俗解释 1.多线程用于堆积处理,就像1个大土堆,1个推土机很慢,那么 ...
分类:
编程语言 时间:
2017-02-17 17:13:04
阅读次数:
238
两种锁的加锁原理 互斥锁:线程会从sleep(加锁)——>running(解锁),过程中有上下文的切换,cpu的抢占,信号的发送等开销。 自旋锁:线程一直是running(加锁——>解锁),死循环检测锁的标志位,机制不复杂。 两种锁的区别 互斥锁的起始原始开销要高于自旋锁,但是基本是一劳永逸,临界区 ...
分类:
其他好文 时间:
2017-02-14 13:58:29
阅读次数:
152
线程 类std::thread代表一个可执行线程,使用时必须包含头文件<thread>。std::thread可以和普通函数,匿名函数和仿函数(一个实现了operator()函数的类)一同使用。另外,它允许向线程函数传递任意数量的参数。 上例中,t 是一个线程对象,函数func()运行于该线程中。对 ...
分类:
编程语言 时间:
2017-02-14 13:48:55
阅读次数:
157
PowerManager类用于对设备电源状态进行管理;PowerManager.WakeLock类用于保持设备常亮;Android中通过各种Lock锁对电源进行控制,需要注意的是加锁和解锁必须成对出现。 使用Activity的生命周期,以调用保持屏幕常亮和释放屏幕常亮动作。 相应的,需要在Activ ...
分类:
移动开发 时间:
2017-02-10 23:06:12
阅读次数:
497
A Tour of Go concurrency >> sync.Mutex https://tour.golang.org/concurrency/9 golang 里的 map 并不是 concurrency-safe 的,也就是说,当多个 goroutine 对同一个 map 进行操作时,有可 ...
分类:
其他好文 时间:
2017-02-10 17:35:19
阅读次数:
213
恢复内容开始 线程安全概念:当多个线程访问某一个类(对象或方法)时,这个类始终都能变现出正确的行为,那么这个类(对象或方法)就是线程安全的。 synchronized:可以在任意对象及方法上加锁,而加锁的这段代码称为"互斥区"或"临界区"。 下面看一段代码: t3 count = 2t5 count ...
分类:
编程语言 时间:
2017-02-09 10:52:59
阅读次数:
143
1.项目经验 2.基础问题 3.指南认识 4.解决思路 ios开发三大块: 1.Oc基础 2.CocoaTouch框架 3.Xcode使用 CocoaTouch Media Core Services Core OS System Framework OC的类声明,定义域 OC关键字定义为 @cla ...
分类:
其他好文 时间:
2017-02-07 12:36:43
阅读次数:
278
这一小节给了一段代码, 可以看出,这是对一个不保证线程安全的容器做写入同步。书中该代码前的语境是这样: 。。。不过,需要在这里提一点的是,有时通过加锁把使用线程不安全容器的代码改为使用线程安全容器的代码时,会遇到笔者之前遇到过的一个陷阱,即在一个使用 map 存储信息后统计总数的例子中,map 中的 ...
分类:
编程语言 时间:
2017-02-04 16:58:36
阅读次数:
681