zoukankan      html  css  js  c++  java
  • IOS-多线程知识

    1.什么是进程,什么是线程?

    一个运行的程序可以比作一个进程。一个进程中可以包括多个线程,但至少有一个主线程,每个线程可以比作程序的执行流。

    2.运用线程应该注意的地方?

    每个进程刚开始都会分配一定的内存,而创建的线程所用到内存是进程分配的内存。和用户交互的代码必须写在主线程中。主线程占1M内存,其他为512k的内存。

    [NSThread currentThread]可以查看当前所在线程的任务。

    3.多线程技术?

     (1)NSThread:轻量级

      创建线程方法:+(void)detachNewThreadSelector:(SEL)selector toTarget:(id)target withObject:(id)argument;

            - (void)initWithTarget:(id)target selector:(SEL)selector objdet:(id)argument;后接satrt方法;

      关键函数:-(void)performSelectorInBackground:(SEL)aSelectorwithObject:(id)arg

           当用到UI需要和用户交互时用到:-(void)performSelectorOnMainThread:(SEL)aSelectorwithObject:                       (id)arg waitUntilDone:(BOOL)wait; 

      线程休眠函数(调试使用):[NSThread sleepForTimeInterval:1.0f];

       (2)NSOperation:可以设置线程的数量setMaxConcurrentOperationCount,以及同队列线程的先后顺序addDependency

        一.Invocation创建线                     程:NSInvocationOperation *operation = [[NSInvocationOperation alloc]initWithTarget:self  

                                                                               selector:@selector(downloadImage:)  

                                                                                 object:kURL];  

          NSOperationQueue *queue = [[NSOperationQueue alloc]init];  

        [queue setMaxConcurrentOperationCount:2]; //同一时间可以并发两个线程

          [queue addOperation:operation];

          

       进入主线程:[NSOperationQueue mainQueue]addOperationWithBlock;

       二.block创建线程

       NSBlockOperation *op = [NSBlockOperation blockOperationWithBlock:^{}];

        [queue addOpertion:op];

        进入主线程:[NSOpertionQueue mainQueue] addOperatonWithBlock:^{}];

     4.GCD:队列的思想:有主队列(主线程),全局队列(异步),串行队列(同步)

    在主线程中一定是同步的,只有在全局队列中  async异步 为异步 , sync为同步

      

  • 相关阅读:
    【SpringCloud】consul注册中心注册的服务为内网(局域网)IP
    找零钱-动态规划
    学习分治法+解决大数乘法问题
    如何在分析崩溃的边缘分析问题
    Hadoop组件开发技术.期中考.参考试卷
    数据库原理及应用.实验5.数据库的完整性和安全性
    数据库原理及应用.实验4.视图和索引的创建和使用
    数据库原理及应用.实验3.数据查询与更新
    数据库原理及应用.实验2.表的创建和管理
    数据库原理及应用.实验1.MySQL安装、卸载及使用
  • 原文地址:https://www.cnblogs.com/zhouwenbo/p/4444343.html
Copyright © 2011-2022 走看看