美文网首页
多线程_基础知识

多线程_基础知识

作者: 青葱烈马 | 来源:发表于2017-05-08 15:18 被阅读35次

<p>大部分现在操作系统(包括 iOS) 都支持执行线程的概念, 每个进程可以包含多个线程, 它们可以同时运行. 如果只有一个处理器核心, 操作系统将会在所有执行线程之间切换, 非常类似于在所有执行进程之间切换. 如果拥有多个核心, 线程就像进程一样, 分散到几个核心上去执行.</p>
<p>一个进程中的所有线程共享可执行程序代码和全局数据. 每个线程也可以拥有一些独有的数据. 线程可以使用一种称为互斥量(mutex)或锁的特殊结构, 这种结构可以确保特定的代码块无法一次被多个线程运行. 在多个线程同时访问相同数据时, 这有助于保障正确的结果, 在一个线程更新某个值(在代码中称为临界区)是锁定其他线程.</p>
<p>处理线程的过程中我们通常会关注线程安全(thread safe)问题. 一些软件库在编写时考虑了线程并发性, 并使用互斥量恰当的保护它们的所有临界区, 也有一些代码库不是线程安全的.</p>
<p>举例来说, 在 Cocoa Touch 中, Foundation 框架(包含适用于所有 Objective-C 编程类型的基本类, 如 NSString, NSArray等)通常被视为是线程安全的, 但是, UIKit 框架(包含专门用于构建 GUI 应用的类, 如 UIApplication, UIView 及其所有子类等)在很大程度上被视为非线程安全的. 这意味着在一个运行的 iOS 应用中, 处理任何 UIKit 对象的所有方法调用都应从相同线程执行, 该线程通常称为<b>主线程( main thread)</b>. 如果从另一个线程访问 UIKit 对象, 那结果就不堪设想了! 你还可能会遇到一些莫名其妙的 bug, 甚至更糟的是, 你自己不会遇到任何问题, 但发布只有一些用户却遭殃了.</p>
<p>默认情况下, 主线程执行 iOS 应用的所有操作(比如处理由用户事件触发的操作), 所以对于简单应用, 没有什么需要担心的. 用户触发的动作方法已在主线程运行</p>

相关文章

  • Android 多线程

    Android多线程:你必须要了解的多线程基础知识汇总Android多线程:这是一份全面 & 详细的Handler...

  • GeekBand - iOS 多线程和RunLoop 总结

    iOS 开发高级进阶 第三周 多线程 Runloop iOS 多线程以及 RunLoop 学习总结 基础知识 什么...

  • Android开发 Java线程基础

    简介 本篇文章是带大家了解 Java多线程的基础知识.主要内容: 介绍多线程的概念, 了解多线程的优点, 状态, ...

  • Java多线程高级特性(JDK8)

    [TOC] 一、Java多线程 1.Java多线程基础知识 Java 给多线程编程提供了内置的支持。一条线程指的是...

  • GCD多线程归纳和总结

    GCD多线程基础知识 Serial Dispatch Queue 串行队列Concurrent Dispatch ...

  • 多线程并发知识精要

    学习多线程并发,要着重 “外练互斥,内修可见” ,这是掌握多线程、学习多线程并发的重要技术点。一、基础知识1、cu...

  • 最强大的Android线程池框架

    背景 大家都知道在我们的开发中永远都离不开多线程,对于我们为什么要使用多线程,多线程的使用和多线程的一些基础知识这...

  • Java多线程 ----(1)多线程基础

    1、什么是多线程和使用多线程的意义2、多线程基础知识点框架图3、实现多线程的三种方式4、三种方式对比 1、什么是多...

  • OC底层知识(十一) : 多线程

    一、简介:多线程在之前进行过一篇详细的基础博客 iOS多线程 二、多线程的基础知识回顾 1.1、iOS中的常见多线...

  • 百度iOS面试总结

    原文链接 一面 1、iOS基础知识 2、Python基础知识,大概是多线程,线程安全,集合类,JVM,类相关知识等...

网友评论

      本文标题:多线程_基础知识

      本文链接:https://www.haomeiwen.com/subject/ymwmtxtx.html