并发编程 学习笔记(二)
来源:互联网 发布:大数据预测性分析方法 编辑:程序博客网 时间:2024/05/21 11:06
Objective-C中的并发编程有如下几个:
1.语言特性
使用@synchronized指令可以在Objective-C代码中创建锁,使用atomic属性限定符可以对Objective-C属性进行线程安全的访问。
@synchronized(uniqueObj) { // 关键部分-被该指令保护的代码}
2.消息传递
Foundation框架中的NSObject类含有多个用于向其他线程发送消息的方法。
performSelector:onThread:withObject:waitUntilDone:performSelector:onThread:withObject:waitUntilDone:modes:performSelectorOnMainThread:withObject:waitUntilDone:performSelectorOnMainThread:withObject:waitUntilDone:modes:
使用案例如下:
ConcurrentProcessor *processor = [ConcurrentProcessor new];[processor performSelector: @selector(downloadTask) onThread: secondaryThread withObject: nil waitUntilDone:NO];
3.线程
Foundation框架提供了直接创建和管理线程的整套API。
3.1.NSObject线程
ConcurrentProcessor *processor = [ConcurrentProcessor new];[processor performSelectorInBackground: @selector(downloadTask) withObject: nil];
这个例子隐式地创建和启动用于执行对象中方法的新线程。
3.2.NSThread
NSThread可以显示地创建和管理线程。
detachNewThreadSelector:toTarget:withObject: initWithTarget:selector:object:
但是NSThread创建的线程需要自己启动
[thread start];
NSThread中有许多方法,可以配置线程、确定线程的执行状态和查询线程的环境。比如:
[NSThread sleepForTimeInterval:5.0];
3.3.线程同步
3.3.1 锁:大概分为NSLock, NSRecursiveLock, NSConditionLock, NSDistributedLock
3.3.2 条件:条件变量是一种锁,用于同步操作的执行顺序。
4.操作队列
这是基于Objective-C的消息传递机制。
5.分派队列
这些是基于C语言的一系列语言特性和运行时服务。
0 0
- 并发编程 学习笔记(二)
- Java并发编程实战学习笔记(二)-可见性
- Java并发编程实战笔记(二)
- 《Java编程思想》学习笔记19——并发编程(二)
- 《Java编程思想》学习笔记19——并发编程(二)
- java线程学习(二)—并发编程实践学习笔记
- JAVA并发编程笔记二
- 学习笔记(九)并发(二)
- 《深入理解java虚拟机》学习笔记10——并发编程(二)
- 《深入理解java虚拟机》学习笔记10——并发编程(二)
- 并发编程实战学习笔记(二)——对象的共享
- iOS并发编程(GCD)学习笔记
- iOS并发编程(GCD)学习笔记
- iOS并发编程(GCD)学习笔记
- 并发编程 学习笔记(一)
- Java并发编程学习笔记(一)
- Go学习笔记六(并发编程)
- java并发编程学习笔记(一)
- 单调队列 poj2823 Sliding Window
- 日经春秋 20151028
- 看到一个修改VC6.0字体的方法,存一下!
- video视频操作之暂停开始放大缩小
- 杭电-1015Safecracker(DFS)
- 并发编程 学习笔记(二)
- mysql 用户管理和权限设置
- Java并发编程:并发容器之CopyOnWriteArrayList
- Android使用Canvas绘图
- Android短信拦截机制适配的坑(下)--4.4以上系统,主要是6.0
- 1012: 弟弟的作业
- DP-POJ-3616-Milking Time
- zoj 1242
- <%@include%>和<jsp:inclued />的区别