博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
多线程理论知识 -- 小白的教程
阅读量:7122 次
发布时间:2019-06-28

本文共 1092 字,大约阅读时间需要 3 分钟。

多线程的概念:

 

1.进程 —》车间  ,线程 —》 车间工人 (多个工人)

 

2.cpu 只能处理1条线程,cpu可以快速的在线程之间切换,所以造成了并发执行的错觉。

 

3多线程的优缺点

 

 多线程的优点

能适当提高程序的执行效率

能适当提高资源利用率(CPU、内存利用率)

 

多线程的缺点

 

开启线程需要占用一定的内存空间(默认情况下,主线程占用1M,子线程占用512KB),如果开启大量的线程,会占用大量的内存空间,降低程序的性能

线程越多,CPU在调度线程上的开销就越大

程序设计更加复杂:比如线程之间的通信、多线程的数据共享

 

4.多线程在iOS开发中的应用

主线程:一个iOS程序运行后,默认会开启1条线程,称为“主线程”或“UI线程” 

 

主线程的主要作用

 

显示\刷新UI界面

处理UI事件(比如点击事件、滚动事件、拖拽事件等)

主线程的使用注意:别将比较耗时的操作放到主线程中。

耗时操作会卡住主线程,严重影响UI的流畅度,给用户一种“卡”的坏体验

 

 

5.代码示例

1 // 2 //  YYViewController.m 3 //  01-阻塞主线程 4 // 5 //  Created by apple on 14-6-23. 6 //  Copyright (c) 2014年 itcase. All rights reserved. 7 // 8  9 #import "YYViewController.h"10 11 @interface YYViewController ()12 - (IBAction)btnClick;13 @end14 15 16 @implementation YYViewController17 18 19 - (void)viewDidLoad20 {21     [super viewDidLoad];22 }23 24 25 //按钮的点击事件26 - (IBAction)btnClick {27     //1.获取当前线程28     NSThread *current=[NSThread currentThread];29     //2.使用for循环执行一些耗时操作30     for (int i=0; i<10000; i++) {31         //3.输出线程32         NSLog(@"btnClick---%d---%@",i,current);33     }34 }35 36 @end

 

 

转载于:https://www.cnblogs.com/meixian/p/6062150.html

你可能感兴趣的文章
作为开发小组长的一些感悟
查看>>
出来混迟早要还的,技术债Dagger2:Android篇(上)
查看>>
Javascript测试知识点总结
查看>>
Spring Cloud Netflix—声明性REST客户端:Feign
查看>>
华为8.0系统设备最完美激活xposed框架的步骤
查看>>
Java程序员学会了这五张图,入职美团、京东、BAT不在话下
查看>>
玩转Go语言之Hello World!
查看>>
Redis 4.0 自动内存碎片整理(Active Defrag)源码分析
查看>>
优雅地乱玩Linux-2-zsh
查看>>
我从小程序学到了什么(一)
查看>>
学习笔记之事件循环-Event loop
查看>>
前端权限管理之 addRoutes 动态加载路由踩坑
查看>>
JavaScript算法之递归
查看>>
工厂方法与 FactoryBean(Spring对工厂模式的XML支持)
查看>>
div对角放置图片
查看>>
Spring Boot 自动配置原理
查看>>
每日一篇——lodash——array——chunk
查看>>
[译文] 如何在 Node.js 中使用 ES6 语法的 import/export
查看>>
js使用dispatchEvent派发自定义事件
查看>>
Java程序员从阿里、百度面试回来,这些面试题你们会吗?
查看>>