码迷,mamicode.com
首页 > 编程语言 > 详细

多线程001------简介

时间:2016-05-12 20:12:38      阅读:159      评论:0      收藏:0      [点我收藏+]

标签:

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 自动 经常



多线程001------简介

标签:

原文地址:http://blog.csdn.net/wangjunling888/article/details/51352776

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!