• iOS-网络基础概念


    webBasic-网络基础

    一、基础概念

    • 进程

      • 进程是指在系统中正在运行的独立的一个应用程序
    • 线程

      • 1个进程要想执行任务,必须得有线程(每1个进程至少要有1条线程)

      • 一个进程(程序)的所有任务都在线程中执行

      • 特征:

        • 1个线程中任务的执行是串行的
    • 主线程

      • 一个iOS程序运行后,默认会开启1条线程,称为“主线程”或“UI线程”
      • 作用
        • 显示刷新UI界面
        • 处理UI事件(比如点击事件、滚动事件、拖拽事件等)
          +使用注意:
          *别将比较耗时的操作放到主线程中

    注意:

    • 虽然有时候可以在子线程中操作UI, 但是开发中千万不要这样干
      因为如果是在子线程中操作UI, 有时候行, 有时候不行
    • iOS中多线程的实现方案

    二、pthread

    基本不用

    • 创建pthread
      • pthread_create
    • 只要create一次就会创建一个新的线程
    • 系统会自动在子线程中调用传入的函数
    
    // 将耗时操作放到子线程中执行
    
        /*
         第一个参数: 线程的代号(当做就是线程)
         第二个参数: 线程的属性
         第三个参数: 指向函数的指针, 就是将来线程需要执行的方法
         第四个参数: 给第三个参数的指向函数的指针 传递的参数
         void *(*functionP)(void *)
         void *  == id
    
         一般情况下C语言中的类型都是以 _t或者Ref结尾
         */
        pthread_t threadId;
        // 只要create一次就会创建一个新的线程
        pthread_create(&threadId , NULL, &demo, "lnj");
    
    void *demo(void * param)
    {
        // 会在子线程中执行
        NSLog(@"%s, %@", param, [NSThread currentThread]);
        for (int i = 0; i < 99999; i++) {
            // NSLog是非常耗时的操作
            // 一般情况在企业开发中, 如果程序要上架, 必须去掉程序中所有的NSLog
            NSLog(@"%i", i);
        }
        return NULL;
    }
    
  • 相关阅读:
    Fedora13下真正能用的源(2015-5-16亲测)
    Shellcoding教程:介绍ASM(译)
    Shellcoding教程:介绍ASM
    ubuntu解决pppoeconf和network-manager冲突时,可能问题的解决方法
    vue_router-link传参
    js_window.postMessage往不同窗口里面发送数据
    iframe_iframe引入其它页面
    css_去掉默认样式
    vue_常用组件install
    js_正则表达式
  • 原文地址:https://www.cnblogs.com/66it/p/4719727.html
Copyright © 2020-2023  润新知