分析:
1.单例模式表明该类只有一个实例被创建,首先将类的构造方法设置为私有,然后写一个public静态函数用来创建实例,利用该类的一个静态指针来保存唯一实例,创建之前先判断是否已经存在,如果已经创建过了就不再创建。
2.考虑到线程安全和异常安全可以在静态函数中加锁。
3.考虑在合适的时机析构创建的实例,因此在该类中定义一个内嵌类delInstance,然后在singleton中添加一个de...
分类:
其他好文 时间:
2014-09-05 16:12:31
阅读次数:
177
今天主要和组里的前辈们讨论了如何做我的这个优化性质的项目。还是那个知值求区间问题。讨论是热烈的。讨论出的意见有分歧,主要关键字是共享内存。多线程还是多进程,一个容易相互影响,一个相互独立。共享内存是要一块还是两块。一块的话加锁同步,两块的话不影响业务。共享内存的大小是确定还是不确定,可是数据会增长变...
分类:
其他好文 时间:
2014-09-05 12:38:31
阅读次数:
197
锁屏效果,也就是将屏幕置于模态,不允许用户触发任何动作,只能解除锁定后才能继续使用,jQueryUI的dialog有模态对话框,这一点不难做到。那么,首先需要在页面中添加一个div层,用于做模态的层:Html代码 其对应的CSS比较简单,主要设置一下z-index属性,值设置的很大即可,就能达到覆盖...
分类:
Web程序 时间:
2014-09-02 09:02:44
阅读次数:
454
继昨天线程介绍后,今天我又把线程中的同步问题总结了一下,现在就和大家一起探讨一下。 线程加锁有什么用处呢?举个例子:比如你现在有30000块大洋在银行存着,现在你到银行取钱,当你输入密码完成后,已经输入取款金额,比如你输入的是20000,就是在银行给你拿钱这个时刻,你老婆也去银行取这笔钱,你老...
分类:
编程语言 时间:
2014-08-26 13:31:46
阅读次数:
214
一. 为什么要引入锁
多个用户同时对数据库的并发操作时会带来以下数据不一致的问题:
丢失更新
A,B两个用户读同一数据并进行修改,其中一个用户的修改结果破坏了另一个修改的结果,比如订票系统
脏读
A用户修改了数据,随后B用户又读出该数据,但A用户因为某些原因取消了对数据的修改,...
分类:
数据库 时间:
2014-08-25 14:55:34
阅读次数:
298
【翻译自维基百科 http://en.wikipedia.org/wiki/Initialization_on_demand_holder_idiom,并进行适当增删】
可能你听过,使用单例模式(singleton)会有线程安全问题,当然可以通过同步加锁等方法解决。但,更简单的方法请看本文。...
分类:
其他好文 时间:
2014-08-24 23:53:03
阅读次数:
295
读写锁 有读优先,写优先。读优先: 即同时有多个读写线程在等待一个条件时,先处理读,后处理写。 实现:写进程获得写锁时,先判断读的引用计数,若0,则继续判断是否有其他线程已获得写权限,若有则循环等待阻塞等待至无,然后继续判断读的引用计数然后继续判断写权限,直至无,然后才对写加锁 ...
分类:
其他好文 时间:
2014-08-24 17:55:42
阅读次数:
173
1 :关注要点,为什么在有synchroniezed方法的同时会出现 Collections.synchronizedList ????2 :知识背景: 您可能需要了解java Synchronized方法的加锁的各种机制,包括如何上锁,锁对象 ? ? 3 : ...
分类:
其他好文 时间:
2014-08-22 11:03:36
阅读次数:
203
概念
有个概念叫做线程局部变量,一般我们对多线程中的全局变量都会加锁处理,这种变量是共享变量,每个线程都可以读写变量,为了保持同步我们会做枷锁处理。但是有些变量初始化以后,我们只想让他们在每个线程中一直存在,相当于一个线程内的共享变量,线程之间又是隔离的。python
threading模块中就提供了这么一个类,叫做local。
多线程中共享变量和局部变量的区别我画两个小...
分类:
编程语言 时间:
2014-08-22 00:21:15
阅读次数:
230
在iOS中有几种方法来解决多线程访问同一个内存地址的互斥同步问题:方法一,@synchronized(id anObject),(最简单的方法)会自动对参数对象加锁,保证临界区内的代码线程安全[cpp]view plaincopyprint?@synchronized(self){//这段代码对其他...
分类:
移动开发 时间:
2014-08-21 11:11:33
阅读次数:
231