多线程简介(多线程001)

来源:互联网 发布:美军身份牌淘宝 编辑:程序博客网 时间:2024/06/06 12:33

4个基本概念

同步

  • 之前写程序的时候都是从上到下,从左到右,代码执行顺序
  • 1个线程执行多个任务,也是依次执行,1个线程同一时间执行1个任务

异步

多个线程可以 "同时" 执行多个任务

进程

  • 当前计算机中正在运行的程序
  • 每个进程之间是独立的,每个进程均运行在其专用的且受保护的内存空间内
  • 通过“活动监视器”可以查看Mac系统中所开启的进程

线程

  • 一个进程包含一个或多个线程
  • 线程是程序执行的基本单位,进程中所有的任务都在线程中运行

多线程

多线程的基本概念

  • 一个进程中可以开启多个线程
  • 多个线程是“同时”运行的
  • 多线程可以提高程序的执行效率

执行原理

通过CPU的快速切换线程

特征总结

  • (单核CPU)同一时间,cpu只能处理1个线程,只有1个线程在执行
  • 通过CPU的快速切换
  • 切换时间非常短,造成了“同时”执行的现象
  • 开启非常多线程的时候,CPU切换线程消耗大量资源导致线程的执行效率降低

优缺点

优点

  • 能适当的提程序的执行效率
  • 能适当的提高资源的使用率
  • 线程执行完所有任务后自动销毁

缺点

  • 开启线程需要占用一定的内存空间(默认情况下,每一个线程都占512KB)
  • 如果开启大量的线程,会占用大量的内存空间,降低程序的性能
  • 线程越多,cpu在调用线程上的开销就越大
  • 程序设计更加复杂,比如线程间的通信、多线程的数据共享

主线程

  • 一个程序运行后,默认会开启1个线程,称为“主线程”或“UI线程”
  • 主线程一般用来 刷新UI界面 ,处理UI事件(比如:点击、滚动、拖拽等事件)

主线程使用注意

  • 别将耗时的操作放到主线程中
  • 耗时操作会卡住主线程,严重影响UI的流畅度,给用户一种卡的坏体验

iOS中的四中多线程技术的区别

 简介语言线程生命周期使用频率pthread跨平台POSIX,使用不便C手动几乎不用NSThread面向对象,直接操作线程对象OC手动偶尔GCD对多核性能优化,使用方便C自动经常NSOperation对GCD的封装,面向对象OC自动经常



0 0
原创粉丝点击