一. 线程安全线程安全问题是指程序中公用的东西被多个线程訪问,比方:类的静态变量线程互斥:是指两个线程之间不能够同一时候执行,他们会互斥,必须等待一个线程执行完成,还有一个才干执行二. 同步锁有什么办法能够解决线程安全问题呢?那就是在程序中加锁Java有两种加锁的方法:1. 在代码块中加锁synch...
分类:
编程语言 时间:
2015-10-17 19:13:37
阅读次数:
177
在多线程程序执行过程中,为什么需要给一些线程加锁以及如何加锁,下面就来说一说。1.给线程加锁的原因我们知道,不同进程之间的内存空间数据是不能够共享的,试想一下,如果可以随意共享,谈何安全?但是一个进程中的多个线程是可以共享这个进程的内存空间中的数据的,比如多..
分类:
编程语言 时间:
2015-10-12 02:05:31
阅读次数:
200
首先假设开发 A , 和 开发 B , 在使用 SVN 进行项目管理。那么A如何才能 某个锁定文件,防止B修改。1、第一步,给这个文件加锁 完成这一步,则这个文件就别锁定了。2、第二步,假如B去把这个文件修改了几行代码,然后 commit开发B commit 失败,因为A已经锁定了文件3、第三步,开...
分类:
移动开发 时间:
2015-10-10 20:08:57
阅读次数:
220
假设两台redis服务器,ip分别为:192.168.1.101和192.168.1.103,如何在101上通过redis-cli访问103上的redis呢?在远程连接103之前,先讲下redis-cli的几个关键参数:用法:redis-cli [OPTIONS] [cmd [arg [arg .....
分类:
其他好文 时间:
2015-10-10 00:16:48
阅读次数:
266
死锁是两个或更多线程阻塞着等待其它处于死锁状态的线程所持有的锁。死锁通常发生在多个线程同时但以不同的顺序请求同一组锁的时候。 例如,如果线程1锁住了A,然后尝试对B进行加锁,同时线程2已经锁住了B,接着尝...
分类:
其他好文 时间:
2015-10-09 15:40:59
阅读次数:
186
// 加锁 @synchronized (self) { // 在同一时间,只能一个线程执行,但是很耗资源 } // 解锁关于加锁,这里有一个东西.关于这个语法:@property.每次我们定义 一个属性的时候,会首当其冲的写上nonatomic,这是为什么?请看下面解说:nona...
分类:
移动开发 时间:
2015-10-07 16:08:59
阅读次数:
204
NSThread具体使用:直接继承NSObjectNSThread:.优点:NSThread 是轻量级的,使用简单缺点:需要自己管理线程的生命周期、线程同步。线程同步对数据的加锁会有一定的系统开销1、属性 @property (readonly, retain) NSMutableDicti...
分类:
移动开发 时间:
2015-10-06 20:49:53
阅读次数:
386
多线程同步加锁主要方式有3种:NSLock(普通锁)、NSCondition(状态锁)、synchronized同步代码块还有少用的NSRecursiveLock(递归锁)、NSConditionLock(条件锁)、NSDistributedLock(分布锁)。区别:NSLock和NSConditi...
分类:
移动开发 时间:
2015-10-06 19:29:05
阅读次数:
207
上一篇文章《MySQL悲观锁总结和实践》谈到了MySQL悲观锁,但是悲观锁并不是适用于任何场景,它也有它存在的一些不足,因为悲观锁大多数情况下依靠数据库的锁机制实现,以保证操作最大程度的独占性。如果加锁的时间...
分类:
数据库 时间:
2015-10-06 00:46:49
阅读次数:
283
单例模式:创建单例对象的两种方式方式一:iOS4版本之前 static SingleClassManager *singleManager = nil; +(SingleClassManager*)sharedManager { @synchronized(self) //同步加锁,...
分类:
移动开发 时间:
2015-10-05 23:23:16
阅读次数:
149