//联系人:石虎QQ: 1224614774昵称:嗡嘛呢叭咪哄
一、主线程的概念
一个iOS程序运行后,默认会开启1条线程,称为“主线程”或“UI线程”
二、主线程的作用
显示\刷新UI界面
处理UI事件(比如点击事件、滚动事件、拖拽事件等)
主线程的使用注意事项:
不能把比较耗时的操作放到主线程中,,严重影响UI的流畅度,给用户一种程序“卡顿”的体验。
因此,要将耗时的操作放在子线程中异步执行。这样一来,及时开始执行了耗时的操作,也不会影响主线程中UI交互的体验。
三、iOS的子线程
子线程是异步执行的,不影响主线程。在iOS开发中,我们需要将耗时的任务(网络请求,复杂的运算)放在子线程进行,不让其影响UI的交互体验。
四、多线程安全
当多个线程访问同一块资源时,很容易引发数据错乱和数据安全问题。就好比好几个人在同时修改同一个表格,造成数据的错乱。
五、资源抢夺的解决方案
我们需要给数据添加互斥锁。也就是说,当某线程访问一个数据之前就要给数据加锁,让其不被其他的线程所修改。就好比一个人修改表格的时候给表格设置了密码,那么其他人就无法访问文件了。当他修改文件之后,再讲密码撤销,第二个人就可以访问该文件了。
注意:
这里的线程都为子线程,如果给数据加了锁,就等于将这些异步的子线程变成同步的了,这也叫做线程同步技术。