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;
}