@property与@synthesize是成对出现的,可以自动生成某个类成员变量的存取方法。在Xcode4.5以及以后的版本,@synthesize可以省略。1.atomic与nonatomicatomic:默认是有该属性的,这个属性是为了保证程序在多线程情况,编译器会自动生成一些互斥加锁代码,避...
分类:
其他好文 时间:
2015-12-28 18:33:25
阅读次数:
130
读写锁读写锁与互斥量类似。也是通过加锁的方式来实现线程之间的数据同步。互斥量的特点是 一次只有一个线程对其加锁。而对于度操作来说,即使有多个线程同时进行读操作是不会 产生冲突的。读写锁便利用了这个特性。它一共有三个状态:读模式下加锁状态,写模式 下加锁状态和不加锁状态。使用的规则如下:当读写锁是写加...
分类:
编程语言 时间:
2015-12-28 09:05:10
阅读次数:
245
同步的概念多个线程可以共享内存空间,在程序中不可避免的需要多个线程协作完成某个功能。那么这些线程就可能会使用某个公共的资源。比如说全局变量,某个文件等等。为了不产生冲突,冲突会产生在多个线程的写操作之间,而读操作则很安全。这就需要多个线程之间的同步。互斥量的原理互斥量 实现同步的机制很好理解。可以将...
分类:
编程语言 时间:
2015-12-28 09:02:58
阅读次数:
209
iOS并发编程--8种加锁方式及比较1. @synchronized 关键字加锁2. NSLock 对象锁3. NSCondition4. NSConditionLock 条件锁5. NSRecursiveLock 递归锁6. pthread_mutex 互斥锁(C语言)7. dispatch_se...
分类:
其他好文 时间:
2015-12-21 12:10:11
阅读次数:
177
线程间的内存可视性当线程调用怕thread——create时, 它所能看到的内存值也是它建立的线程能够看到的。任何在调用怕thread_create之后写入的数据,可能不会被建立的线程看到,即使写操作发生在启动新线程之前。当线程解锁互斥量时候看到的内存数据,同样也能被后来直接锁住(或通过等待条件变量...
分类:
其他好文 时间:
2015-12-20 19:17:51
阅读次数:
198
socket() 本地的进程间通信(IPC)有很多种方式,但可以总结为下面4类: 消息传递(管道、FIFO、消息队列) 同步(互斥量、条件变量、读写锁、文件和写记录锁、信号量) 共享内存(匿名的和具名的) 远程过程调用(Solaris门和Sun RPC) 不过这个不是重点!提问,在网络中进程之间如何...
分类:
其他好文 时间:
2015-12-17 00:31:02
阅读次数:
179
1 /* 2 @synchronized 的作用是创建一个互斥锁,保证此时没有其 3 它线程对self对象进行修改。 这个是objective-c的一个锁定 4 令牌,防止self对象在同一时间内被其它线程访问,起到线程 5 的保护作用。一般在公用变量的时候使用,如单例模式或者 6 操作...
分类:
其他好文 时间:
2015-12-14 20:54:13
阅读次数:
198
一、WaitHandler的类层次 可以看到 WaitHandle是 事件(EventWaitHandle)、互斥体(Mutex)、信号量(Sempahore)的父类。 WaitHandle我们最经常使用的方法,并是使用它的静态方法WaitAll. 我们会发现在这个WaitHandle里面只有等待方...
分类:
编程语言 时间:
2015-12-14 14:14:28
阅读次数:
226
进程:程序(任务)的执行过程——动态性。持有资源(共享内存,共享文件)和线程。线程:线程是系统中最小的执行单元,统一进程中有多个线程,线程共享进程的资源。线程交互:互斥与同步。注意:多线程是异步的,所以千万不要把Eclipse里代码的顺序当成线程执行的顺序,线程被调用的时机是随机的。java对线程的...
分类:
编程语言 时间:
2015-12-12 20:16:00
阅读次数:
233