• iOS之多线程1-NSThread简介


    关于多线程在iOS中的重要性,就不废话了.就一个字:重要 ! ^_^

    iOS中常用的三种多线程方式:NSThread , GCD, NSOpertaion

    虽然NSThrea排在第一位(几乎所有的介绍多线程的书籍都是这么排序),但用的最少,原因:没有后面的两个小弟用起来体贴.

    作为多线程的大哥,NSThread几乎已经躲到幕后了.

    NSThread是从Mac OS 系统引入到iOS中的,在Mac OS 10.5之前,NSThread的启用方法只有一个: detachNewThreadSelector:toTarget:withObject:

    在10.5之后,苹果又添加了一个看起了更加简约的启用方式:start

    并且在10.5之后,继承NSThread的子类,可以重写main方法(线程的一个入口方法)后,不用再调用super的main方法;

    关于NSThrea的学习归纳大纲:

    1. 初始化

      - (id)init  

                  // 这个方法设计的目的,就是用来初始化一个实例,

      - (id)initWithTarget:(id)target selector:(SEL)selector object:(id)argument

             // target: 用来接收消息selector的对象 (换句话就是调用target的select方法);

        // selector:发送给target的消息,(target的selector方法),这个消息只能有一个参数,并且不能有返回值;

        // argument :传递给target的一个对象,可以是nil;

    垃圾回收机制一直是苹果开发的一个问题,做了很久的iOS也会有人认为OC是没有垃圾回收,其实这个说法不完全正确;严格的说,在iOS下的OC是没有垃圾回收的,在Mac下,OC是有垃圾回收机制的;

    在没有垃圾回收机制的情况下,selector方法会维护一个自动释放池,并将Target和argument放进自动释放池中,当线程退出的时候,会release掉这个自动释放池;

    在有垃圾回收机制的情况下,不会产生这个自动释放池;

    /*****************************后续预告******************************

    2. 使用 (启动进程 / 停止进程 / ...)  

    3.状态查询处理 ( 是否主主线程 / 是否多线程 / 设置优先级 / ...)

    4.通知 (三种通知消息)

    ***********************************************************************/

  • 相关阅读:
    很实用的jQuery事件
    移动端touchstart,touchmove,touchend
    Django的学习(二)————Templates
    Django的学习(一)————初入django
    Tkinter添加图片
    HierSort(希尔)————Java
    Bubble(冒泡排序)————Java
    类+进程池的方法爬取喜马拉雅
    Ajax的爬取心得
    python中将两个数组压缩成一个数组
  • 原文地址:https://www.cnblogs.com/caios/p/3834184.html
Copyright © 2020-2023  润新知