objective-c - 基础篇 - 数据库网络 -- 进程和线程--NSThread

一、进程和线程(可以参考自己项目:61天-数据库网络--多线程之NSThread)

1:一个应用程序就是一个进程,之后进程下面包括多个线程(至少一个线程)。

2:计算机是以线程为单位的。

3:线程是同步的。

4:假如我们的电脑是双核的,那么就可以同时运行两个线程,而其他的线程就需要等待CPU的分配。

5:通过时间片的切割,来切换线程。(时间片切割就是线程所需占用时间是多少,占用时间越多,说明抢占到的机会越大)

6:线程加锁----由于线程是同步的,所以有时候会出现不同线程同时运行一个事件的情况(例如买火车票事件中,窗口一、和窗口二就可能同时会在休眠的时候,同时卖第3张票),所以我们就需要对事件进行加锁(而且必须是同一把锁),从而避免上述情况。同时也需要在相应地方解锁

7:使用多线程的情况:

     (1):我们想使一个应用程序抢占过多的系统资源时就是用多线程技术,因为一个进程就是多个线程,线程越多抢占CPU就越多,比如说抢占CPU的时间。

     (2):一个应用程序中,有一个A线程需要一直运行或者运行时间很长,那么我们就要使用多线程,使这个A线程可以在后台运行,避免只有一个A线程而导致整个应用程序都停着等待A线程的结束。

     (3):做一件事情时,我们想让多个应用程序一起来做,比如我们要下载一个文件,不过这个文件特别大,那么我们就可以通过三个线程来分别下载该文件的一部分。

    (4):启动线程的方式有一种是:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Objective-C是一门面向对象的编程语言,它是C语言的扩展,常用于开发iOS和Mac应用程序。在Objective-C中,线程是用来执行并发任务的执行单元。 Objective-C中处理线程的方式有多种,最常用的方式是使用NSThread类或GCD(Grand Central Dispatch)。下面我将简单介绍这两种方式: 1. NSThreadNSThreadObjective-C封装的线程类,可以手动创建和管理线程。你可以通过创建NSThread对象,并调用start方法来启动线程NSThread提供了一些方法,如sleep、exit、cancel等,用于线程的控制和管理。 示例代码: ``` NSThread *myThread = [[NSThread alloc] initWithTarget:self selector:@selector(myThreadMethod) object:nil]; [myThread start]; ``` 2. GCD(Grand Central Dispatch):GCD是一种更现代化的多线程编程方式,它提供了一种高效且易于使用的并发模型。GCD使用队列(dispatch queue)来管理任务的执行,分为串行队列和并发队列两种类型。 示例代码: ``` // 创建并发队列 dispatch_queue_t concurrentQueue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0); // 在并发队列上异步执行任务 dispatch_async(concurrentQueue, ^{ // 执行任务的代码 }); ``` 以上是Objective-C中处理线程的两种常见方式,具体选择哪一种取决于你的需求和偏好。需要注意的是,在iOS开发中,为了确保UI的响应性,UI的更新必须线程(也称为队列)上执行,可以使用GCD的队列来实现。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值