必威-必威-欢迎您

必威,必威官网企业自成立以来,以策略先行,经营致胜,管理为本的商,业推广理念,一步一个脚印发展成为同类企业中经营范围最广,在行业内颇具影响力的企业。

2、使用结构体,单个线程只能执行一个任务

2019-09-12 19:42 来源:未知
  • ### 3.使用GCD创建
异步函数和同步函数搭配并行队列的打印日志:当前线程是主线程
  • 异步函数:创建了多个子线程,并行执行
  • 同步函数:在当前线程中一个一个的执行

    图片 1Paste_Image.png

Blocks的使用

我们先来看看C语言函数的使用:

int func(int count){
  return count + 1;
}
//将函数地址赋值给函数指针类型变量
int (*funcptr)(int) = &func;

声明Block类型变量以及变量之间的赋值:

int (^blk)(int)  = ^(int count){return count + 1};
int (^blk1)(int);
blk1 = blk;

Block类型变量作为函数参数和函数返回值:

int (^func())(int){
  return ^(int count){return count + 1};
}

使用typedef声明Block类型变量

typedef int (^blk_t)(int);

int func(blk_t blk){
  return blk(10);
}

也可以像C语言变量一样使用,使用Block的指针类型变量。

typedef int (^blk_t)(int);
blk_t blk = ^(int count){return count + 1};
blk_t *blkptr = &blk;
(*blkptr)(10);
1. 进程
  • 进程就是一个正在执行的程序的实例。也就是说我们的每一个APP程序在执行时实例都是一个进程,也可以说在APP执行时,它只拥有唯一的一个进程。
  • 每一个进程都是独立的,每一个进程均在专属的内存空间内,iOS中每一个App都有自己独特的内存和磁盘空间,别的App是不允许访问的。iOS开发中应用程序之间互相调用包括调用发短信、打电话等进程相关操作的API都被封装到UIApplication这个类中了。
  • 每个进程至少拥有一个线程。
  • 在UNIX和Linux系统中是有进程层次结构的,当进程创建了另一个进程后,父进程和子进程就以某种方式继续保持联系。子进程自身可以创建更多的进程,组成一个进程的层次结构。(进程只有一个父进程但是可以有0个,1个或多个子进程。)而Windows中没有进程层次的概念,所有进程地位相同。唯一类似进程层次的地方是在创建进程的时候父进程得到一个特别的令牌,该令牌可以用来控制子进程。但是父进程可以把这个令牌传送给其他进程,这样就不存在进程层次了。
  • 进程有3种状态,分别是:1)运行态(该时刻进程实际占用CPU)。2)就绪态(可运行,但因为其他进程正在运行而暂时停止)。3)阻塞态(除非某种外部事件发生,否则进程不能运行)。

写在后面:

我写的关于设计模式内容,都是来自书《精通Swift设计模式》,如果有兴趣可以直接买来看看,不用看我的"歪曲理解"。我只是一个搬运工,记录过程,记录一点浅显的理解

TAG标签:
版权声明:本文由必威发布于必威-编程,转载请注明出处:2、使用结构体,单个线程只能执行一个任务