多线程操作之线程概念
来源:互联网 发布:arduino 单片机 编辑:程序博客网 时间:2024/05/20 10:15
1.什么是线程
1>1个进程要想执行任务,必须得有线程(每1个进程至少要有1条线程),一个应用程序至少是一个进程(如果程序过大系统会分配过个进程,比如操作系统)
2>进程分配资源,线程执行任务
3>线程是进程的基本执行单元,一个进程(程序的所有任务都有在线程中执行),比如使用酷狗播放音乐,使用迅雷下载电影,都需要在线程中执行.
2.线程的类型
1>串行
1个线程中的任务执行是串行,即如果要在一个线程中执行多个任务,那么只能一个一个地按顺序执行这些任务(同一时间内1个线程只能执行一个任务)
也可以认为线程市金城中的 1条执行路径
比如一个线程中现在三个文件(A,B,C)
2>并行
1个进程中可以开辟多条线程,每条线程可以并行(同时)执行不同的任务
比如同时开辟3条线程,分别下载3个文件(文件A,文件B,文件C)
3.多线程原理
1>同一时间,cpu只能处理1条线程,只有1条线程在工作(执行)
2>多线程并发(同时执行),其实是cpu快速的在多条线程之间调度(切换)
3>如果cpu调度线程的时间足够快,就造成了多线程并发执行的假象
4>思考:如果线程非常多,会发生什么情况?
<1>cpu会在n条线程之间调度,cpu消耗会大大增加(一般情况下不会多于5条)
<2>每条线程被调度执行的频率会降低(线程的执行效率会降低)
4.多线程的优缺点
1>优点:
<1>能适当地提高程序的执行效率
<2>能提高资源的利用率(cpu,内存利用率)
2>缺点
<1>开辟线程需要占用一定的内存空间(默认情况下,主线程占1M,子线程占用512KB),如果开辟大量的线程,会占用大量的内存空间降低程序的性能
<2>线程越多,cpu在调度线程上得开销就越大
<3>程序设计更加复杂:比如程序之间的通讯,多线程的数据共享
5.什么是主线程
一个iOS程序运行后,默认会开启一条线程称为"主线程"或者"UI线程"
每一个进程都有自己独立的主线程
主线程的作用:
显示\刷新UI界面
处理UI事件(比如点击事件,滚动事件,拖拽事件)
主线程的使用注意:
不要将比较耗时的操作放入主线程中,否则会卡主线程
- 多线程操作之线程概念
- 多线程之浅谈线程概念
- JAVA多线程机制之线程概念
- 进程,线程,多线程概念
- 【多线程-线程的概念】
- 多线程 线程 进程概念
- Linux多线程编程之线程同步操作
- 第二十四篇:JAVA多线程机制之线程概念
- java多线程(5)之线程池概念理解
- python多线程操作【概念】
- 线程的概念&操作
- 多线程之概念题解
- 多线程之概念字典
- 线程解析之概念
- Java基础之线程与多线程操作详解
- IOS多线程系统学习之线程的操作
- java多线程之线程并发库原子性操作类
- 多线程__【多线程的概念】【创建线程】【线程的状态】
- android 网络异常提示
- -webkit-text-size-adjust: none;
- 【模板】【bzoj3224】Tyvj 1728 普通平衡树 Splay
- 275、H-Index II
- 模拟快递100请求 通过快递单号获取物流信息
- 多线程操作之线程概念
- mysql查询所有记录,并去掉重复的记录
- SDWebImage内部实现过程
- 英国MBA专业
- Android shape的使用笔记
- windows下Eclipse JDK环境变量配置 Tomcat配置
- Servlet的认识
- opencv1.0-vc6-win7 视屏流
- linux下kodi没有声音的解决