多线程
来源:互联网 发布:医疗教育软件开发 编辑:程序博客网 时间:2024/06/06 23:55
今天给大家介绍一下多线程的基本概念
1.进程的基本概念
每一个进程都是一个应用程序,都有独立的内存空间,一般来说一个应用程序存在一个进程,但也有多个进程的情况。
2.多线程的基本概念
- 每一个程序都有一个主线程,程序启动时创建(调用main来启动)
- 主线程的生命周期是和应用程序绑定的,程序退出时,主线程也就停止了。
- 多线程技术表示,一个应用程序有多个线程,使用多线程能提供CPU的使用率,防止主线程阻塞。
- 任何有可能阻塞主线程的任务不要在主线程执行(访问网络)
3.多线程使用要注意:
- 线程使用不是无节制的
- 只有主线程有直接修改UI能力
4.三种多线程技术
- NSTread是每个NSTread对象对应一个线程,量级矫情5,是对pthread的抽象(pthread是POSIX线程的API,是C语言的技术,可以直接操作线程)。
- GCD(Grand Central Dispatch)是基于C语言的框架,使用队列管理线程,可以充分利用多核。
- NSOperation/NSOperationQueue 是面向对象的线程技术,是对GCD的抽象。
5.三种对象的对比
- NSTread:
优点:比其他两个轻量级,使用简单
缺点:需要自己管理线程的生命周期、线程同步、枷锁、睡眠以及唤醒等。线程同步对数据的加锁会有一定的系统开销。 - NSOperation
无需关心线程管理数据同步,是面向对象的 - GCD
是由苹果开发的一个多核编程的解决方案。IOS4.0+才能使用,建议用此方法。
GCD是基于C语言的。
0 0
- 多线程
- 多线程
- 多线程
- 多线程
- 多线程
- 多线程
- 多线程
- 多线程
- 多线程
- 多线程
- 多线程
- 多线程
- 多线程
- 多线程
- 多线程
- 多线程
- 多线程
- 多线程
- 分布式算法 1 同步网络的形式化描述
- html5学习历程
- JavaScript 语句标识符
- SQL Server 异常 COM 类公司中CLSID 为 {10021F00-E260-11CF-AE68-00AA004A34D5} 的组件时失败,原因是出现以下错误: 80040154
- (百度笔试题)给定任意一个正整数,求比这个数大且最小的“不重复数”。
- 多线程
- Spring注解
- radminpass.php
- 读写properties文件
- 序列化和反序列化
- UI_网络编程
- 方便测试的 adb 命令 集合
- leetcode-118 Pascal's Triangle
- Android 在程序中关闭和打开屏幕