zoukankan      html  css  js  c++  java
  • GCD

    1.线程:按照线型的顺序执行的流程。 叫做线程

    -(void)method{

    [self runA];

    [self runB];

    }//先执行runA ,如果说RunA没有执行完成,runB  就一直等到runA 执行完毕,再执行runB,因为他们都是一个线程,单线程好比一个人去执行三个任务,先执行第一个任务,执行完成再执行第二个任务,依次完成,所有任务都我一个人完成。多线程好比,我在执行第一个任务,我叫我兄弟去执行第二个,那我就可以去做第三个任务了,不必等他。

    进程:每一个进程就是一个应用程序。都有独立的内存空间,一般来说一个应用程序存在一个进程,但也有多个进程的情况,同一进程中的线程共享内存中的内存和资源。一个进程里面包含多个线程,。浏览器是有很多个进程的。

    多线程概念:每一个程序都有一个主线程,程序启动时创建(调用主线程来启动),程序退出时,主线程也就停止了,多线程中一个应用程序有多个线程,(比如一颗大树,都有一个主躯干,其他的分支就是线程,主线程就是主躯干) 使用多线程可以CUP的使用效率,防止主线程阻塞。任何有可能堵塞住线程的任务不要放在主线程中执行,一切跟UI有关的操作都放在主线程中执行(按钮等)。跟UI无关的时候比如网络请求,下载电影占很长时间等。

    NSOperation 是一个操作(任务),一个操作就是一个线程。

    举例:一百人买票,一个窗口就是一个线程,一人一分钟,就是一百分钟,多线程就是多个窗口,提升性能,

    NSThread

    第一种开启新的线程的调用 mutableThread

    NSThread *t [NSTHread alloc]initWithTarget:self selector:@selector(mutableThread) object:nil];

    [t start]; // 需要手动开启

    第二中开启新的线程的调用mutableThread,不需要手动调用

    [NSTHread detachNewThreadSelector:@selector(mutableThread) toTarget:self withObject:nil];

    第三种开启新的线程调用mutableThread,在后台执行这个方法,前两个方法基本不用。常用的第四种

    [self performSelectorInBackground:@selector(mutableThread)withObject withObject:nil];

    +(BOOL)[isMuliThreaded ]是否是多线程 是的话输出1,不是输出0

    第四种 

  • 相关阅读:
    OGRE源代码resource分析
    全排列
    各种让人无语的库
    python Kmeans算法
    Linux服务器安装MariaDB数据库
    初探SEO,BSP收录速度测试
    MetaWeblog API调用
    Patterns
    腾讯。。。对Linux的支持程度直接扼杀了Linux在国内用户群的增长
    个人电子商务网站建设之——整站静态化实现的选择、设计与实现(二):静态页面的实现方式;
  • 原文地址:https://www.cnblogs.com/yangliangliang/p/4686280.html
Copyright © 2011-2022 走看看