多线程概念

    • 进程:(各自运行在受保护的内存空间,进行的程序,类似于工厂)

    • 线程:(是进程的基本执行单元,每一行代码都是在线程中执行,程序启动默认有一个主线程,是干活的)听歌音乐放到后台也能听歌,迅雷也是一个道理,迅雷有五个线程,每一段线程下载文件的一部分内容,等全部完成后五个一拼,就下载完成。

    • 线程的串行:顺序执行,一行一行从上往下。假如下载三个文件,只能一个一个执行。要同时下载,所以,需要多线程。

    • 线程的并行:同一时间同时执行,并排跑,多个线程同时并发执行就是多线程。

    • 多线程原理:真正干活的是一个CPU,并发就是以纳秒为单位快速调度线程。造成一个假象(你这个骗子),所以线程多速度也不快,频繁调度会降低系统性能。因为干活的就是CPU(例如下载时候看别的,下载基本不动,留给下载的时间太少了,大家都在抢CPU)。

    • 创建线程开销:(1)1K的核心数据结构,执行一段代码。

             (2)Stack Space一个栈区,无论是无线程还是子线程都是512K。

             (3)Creation Time90毫秒。

      • 栈区:栈区是用来保存局部变量的。512K足够。

 

  • 多线程优缺点:(1)优点:提高程序执行效率,提高资源利用率。

                         (2)缺点:占内存,开多了CPU开销大,程序设计复杂。

                         (3)一般开3-6条。

  • 主线程:UI线程(所有UI相关操作都放到主线程),单击,滚动,拖拽时间。

  • 子线程:耗时线程,所有的网络访问。

  • 内存区域demo1:栈区地址比较大。07xfff... 常量区地址小。

  • 程序员不用管栈区内存,因为自动弹栈。需要管理堆区内存,堆区就是alloc init的。arc下也会自动管理。

  • 放到后台实例:新闻,先显示文字,然后图片先占位,然后用户可以先看文字,等下载好了图片出来再看。不能下载过程中表格无法拖拽,这样用户就怒了。所以开发多线程最主要的目的就是耗时操作放在后台。

转载于:https://www.cnblogs.com/sgxx/p/5807070.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值