@synchronized 的作用是创建一个互斥锁,保证此时没有其它线程对self对象进行修改。这个是objective-c的一个锁定令牌,防止self对象在同一时间内被其它线程访问,起到线程的保护作用。 一般在公用变量的时候使用,如单例模式或者操作类的static变量中使用。# import "N...
分类:
其他好文 时间:
2014-11-30 20:06:23
阅读次数:
173
关于MQX操作系统,也使用了一段时间了,一直想总结一下,今天就算开个头吧,希望后续整理一下思路,多做一些关于MQX的专题总结。言归正传!在MQX应用程序中可采用如下方式实现任务间的资源共享:1.事件、轻量级事件2.信号量、轻量级信号3.互斥锁4.消息、轻量级消息1.事件、轻量..
分类:
其他好文 时间:
2014-11-30 17:18:25
阅读次数:
343
参考资料:1 .浅谈Memory Reordering2.透过LINUX内核看无锁编程3.Why the "volatile" type class should not be useddfsdf4.锁的意义spinlock(自旋锁)lock-free(无锁编程)mutex(互斥锁)read_wri...
分类:
其他好文 时间:
2014-11-28 09:51:45
阅读次数:
185
Unix网络编程:卷1-socket套接字 读书笔记...
分类:
其他好文 时间:
2014-11-14 15:44:27
阅读次数:
334
这篇讲讲ReentrantLock可重入锁,JUC里提供的可重入锁是基于AQS实现的阻塞式可重入锁。这篇
聊聊高并发(十六)实现一个简单的可重入锁 模拟了可重入锁的实现。可重入锁的特点是:
1. 是互斥锁,基于AQS的互斥模式实现,也就是说同时只有一个线程进入临界区,唤醒下一个线程时也只能释放一个等待线程
2. 可重入,通过设置了一个字段exclusiveOwnerThread来标示当前获...
分类:
编程语言 时间:
2014-11-11 19:21:34
阅读次数:
616
多线程经常会在Linux的开发中用到,我想把平时的使用和思考记录下来,一是给自己做个备忘,二是分享给可能会用到的人。 POSIX标准下互斥锁是pthread_mutex_t,与之相关的函数有:1 int pthread_mutex_init(pthread_mutex_t * mutex , ...
分类:
编程语言 时间:
2014-11-08 23:19:56
阅读次数:
293
读写锁是数据库中很常见的锁,又叫共享-排他锁,S锁和X锁。读写锁在大量读少量写的情况下有很高的效率优势。
读写锁是基于普通的互斥锁构建出来的更复杂的锁,它有两个基本特点:
1. 当任一线程持有读锁或写锁时,不允许其他线程再持有写锁
2. 当任一线程持有写锁时,不允许其他线程再持有读锁
也就是说,写锁是排他的,只要有一个线程持有写锁,就不允许其他线程再上锁。读锁是共享的,可以有多个线...
分类:
其他好文 时间:
2014-11-03 13:08:32
阅读次数:
256
Linux多线程编程#include<pthread.h>基本线程函数intpthread_create(pthread_t*tid,constpthread_attr_t*attr,void*(*func)(void*),void*arg);线程创建成功返回0,出错返回某个非0值,一般为-1tid创建成功的线程通过tid指针返回线程IDattr指定线程的属性func线程的入口函..
分类:
编程语言 时间:
2014-11-03 10:19:51
阅读次数:
256
一、什么是自旋锁 一直以为自旋锁也是用于多线程互斥的一种锁,原来不是! 自旋锁是专为防止多处理器并发(实现保护共享资源)而引入的一种锁机制。自旋锁与互斥锁比较类似,它们都是为了解决对某项资源的互斥使用。无论是互斥锁,还是自旋锁,在任何时刻,最多只能有一个保持者,也就说,在任何时刻最多只能有一个执.....
分类:
编程语言 时间:
2014-10-31 13:25:10
阅读次数:
294
互斥锁一个明显的缺点是他只有两种状态:锁定和非锁定。而条件变量通过允许线程阻塞和等待另一个线程发送信号的方法弥补了互斥锁的不足,他常和互斥锁一起使用。使用时,条件变量被用来阻塞一个线程,当条件不满足时,线程往往解开相应的互斥锁并等待条件发生变化。一旦其他的某个线程改变了条件变量,他将通知相应的条件变量唤醒一个或多个正被此条件变量阻塞的线程。这些线程将重新锁定互斥锁并重新测试条件是否满足。一般说来,...
分类:
其他好文 时间:
2014-10-30 22:38:05
阅读次数:
272