IOS进程与线程学习心得体会

我们先来说一下进程和线程:

一个应用程序就是一个进程,一个进程里面可以有很多个线程;进程只负责资源的调度和分配,线程才是程序真正的执行单元,负责代码的执行;
进程是针对应用程序而言,线程则是针对代码而言;
每个正在运行的程序(既进程),至少包含一个线程,这个就叫主线程,它负责执行程序的所有代码;
IOS里面用户自己开辟的线程相对于子线程来说被称作子线程,,它与主线程执行互不影响,能够并发执行.


我们一般在什么情况下用多线程:

1)大量运算 比如for循环计算量特别大的时候;

2)数据读取(本地) 数据库查询所有的东西

3)网络请求的时候(同步)



注意:我们手动创建的子线程要手动添加一个自动释放池

        所有的子线程都不能修改UI的界面

IOS多线程的实现种类:

1)NSThread:是一个轻量级的多线程,有两种创建方法

a:

NSThread *thread1 = [[[NSThread alloc] initWithTarget:self selector:@selector(calculator) object:nil] autorelease];

    [thread1 start];

b:

[NSThread detachNewThreadSelector:@selector(calculator) toTarget:self withObject:nil];


2)NSObject

[self performSelectorInBackground:@selector(calculator) withObject:nil];


3)NSOperation和NSOperationQueue(线程队列(线程并发))

NSOperation不直接创建,用继承

NSOperationQueue的创建:

Connect *operation1 = [[Connect alloc] init];

NSOperationQueue *queue = [[NSOperationQueue alloc] init];

设置最大并发数:为一的时候线程与线程之间是同步

[queue setMaxConcurrentOperationCount:1];

[queue addOperation:operation1];

[operation1 release];

[queue release];


4)GCD线程

具有一定功能的代码段

线程要么是同步(一个执行完事在执行另一个(serial))要么是并发的(concnrrent)

serialQueue同步队列,一次只执行一个任务;

concurrent可以并发地执行多个任务;

serialQueue的创建:


concurrent的创建:







  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值