ios swift多线程的实现 Multithreading

1、多线程的概念Multithreading多线程是指从软件或硬件上,实现多个线程并发执行的技术。使得能够同步完成多项任务,提高资源使用效率。1.1 任务、进程和线程任务Task:应用程序完成的一个活动,一个task既可以是一个进程,也可以是一个线程;进程Process:系统进行资源分配和调度的一个独立单位,在内存中有完备的数据空间和代码空间;线程Thread:进程中的
摘要由CSDN通过智能技术生成

1、多线程的概念

Multithreading多线程是指从软件或硬件上,实现多个线程并发执行的技术。使得能够同步完成多项任务,提高资源使用效率。


1.1 任务、进程和线程

  • 任务Task:应用程序完成的一个活动,一个task既可以是一个进程,也可以是一个线程;
  • 进程Process:系统进行资源分配和调度的一个独立单位,在内存中有完备的数据空间和代码空间;
  • 线程Thread:进程中的一个实体,CPU调度和分派的基本单位;


1.2 线程的Stack space

系统中每一个进程都有自己的内存空间,同个进程中多个线程共用进程的内存空间。

  • 在Mac OS中,主线程的栈空间为8MB;
  • 在Ios中,主线程的栈空间为1MB;

应用程序子线程默认栈空间大小为512KB,子线程允许分配的最小栈空间为16KB,并且必须是4KB的整数倍。开发者可以通过NSThread线程对象的stacksize来修改一个子线程的栈空间。

let thread = Thread.init(target: self, selector:(VIewController.threadAction),object:nil)
thread.stackSize = 1024*1024


1.3 线程的优先级

  • threadPriority: 0.0-1.0
  • 系统默认优先级是0.5
  • 高优先级并不是100%比低优先级先执行,只是得到CPU调度的纪律更高
1.4 线程的生命周期
  • 创建 对线程对象进行初始化;
  • 就绪 添加到线程池,等待CPU的调度;
  • 运行 是线程处于执行状态;
  • 阻塞 可以是线程休眠至指定的时间点,或者通过Lock给线程加锁;
  • 消亡 执行完毕之后自动处于正常消亡状态;
2、三种常用的多线程技术
2.1 Thread


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值