• 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为同步

      

  • 相关阅读:
    C#:将子Form加入父Form中
    C#:简单线程样例
    C#:实现接口中定义的事件
    easyui设置界面的高度自适应
    JQuery
    vim常用命令(iOS)
    Linux的IO性能监控工具iostat详解
    php多线程抓取信息测试例子
    使用Gitosis搭建Git服务器
    CentOS 6.4 搭建git 服务器
  • 原文地址:https://www.cnblogs.com/zhouwenbo/p/4444343.html
Copyright © 2020-2023  润新知