美文网首页
多线程相关知识

多线程相关知识

作者: River_YYH | 来源:发表于2021-02-07 11:04 被阅读0次

1、iOS中一般有哪几种?各自的特点是什么?

iOS 中一般有GCD、NSOperation/NSOperationQueue、NSThread
GCD:用来实现简单线程同步、子线程的分派、多读单写等
NSOperation:比如ANetworking、由于它自身特别可以通过控制状态如添加依赖、移除依赖
NSThread:常用来实现一个常驻线程

NSOperation 对象在finished之后怎样从queue当中移除?

  NSOperation 对象在finished之后会会在内部通过kvo方式 通知它所对应
  NSOperationQueue中的相应queue进行移除

.你都用过哪些锁?结合实际谈谈你是怎么样使用的?

NSLock\ NSRecursiveLock(递归锁)
@synchornized :一般在创建单里对象的时候使用

image.png

因为锁重入原因造成了死锁,如何解决呢?使用递归锁NSRecursiveLock


image.png

2、死锁的原因

队列引起的循环等待。
image.png
image.png
image.png
GCD 底层开启的线程是没有开启RunLoop的,而performSelector: withObject:afterDelay:提交的方法必须要在RunLoop中

3、dispatch_barrier_async()

image.png

a、怎样利用GCD实现多读单写?

通过GCD的dispatch_barrier_async来实现

4、NSOperation

a、用NSOperation实现多线程有哪些优势和特点

1)、可以添加任务依赖
2)、任务执行状态控制
3)、可以控制最大并发量

b、任务执行状态
  1. 我们可以控制NSOperation的哪些执行状态?
    .isReady
    .isExecuting
    .isFinished
    .isCancelled


    image.png

    2.系统是怎样移除一个isFinished = YES的NSOperation?
    系统是通过KVO方式

5、NSThread

image.png
image.png
image.png
image.png
image.png
image.png
image.png
image.png

相关文章

  • 多线程相关知识

    1、iOS中一般有哪几种?各自的特点是什么? NSOperation 对象在finished之后怎样从queue当...

  • java基础之多线程略解

    java中的多线程是非常重要的一个知识点,下面我们就来简单的介绍下多线程的相关知识以及相关方法。 并发与并行 并行...

  • iOS多线程

    写一下iOS多线程的相关知识,多线程无论是在实际开发中还是在面试的时候都是相关重要的一个知识点,特别是GCD和NS...

  • Java高效并发(九)

    一段时间没有回顾多线程相关知识了,虽然工作中会用到一些多线程的内容,但都偏向于基础,今天重读多线程相关内容,发现有...

  • iOS 多线程总结(上)

    一、前言 多线程是在 iOS 里非常重要的一块儿知识点,我最近学习了李明杰大神的多线程相关视频,对自己的多线程相关...

  • iOS开发进阶--1.多线程简介

    相关文章链接:1.多线程简介(本文)2.实现多线程的3种方法......待续 学习是由已知的知识模型推理未知的知识...

  • 多线程GCD相关知识

    核心概念: 1任务--执行什么操作 2队列--用来存放任务 同步函数: dispatch_sync(...

  • iOS 多线程之NSOperation、NSOperationQ

    本文用来介绍 iOS 多线程中 NSOperation、NSOperationQueue 的相关知识以及使用方法。...

  • NSOperation

    本文用来介绍 iOS 多线程中 NSOperation、NSOperationQueue 的相关知识以及使用方法。...

  • iOS 多线程: [NSOperation NSOperatio

    本文主要用来介绍 iOS 多线程中 NSOperation,NSOperationQueue 的相关知识以及使用方...

网友评论

      本文标题:多线程相关知识

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