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;
}
原文地址:https://www.cnblogs.com/66it/p/4719727.html