一、GCD(可以参考自己项目:61天-数据库网络--多线程之GCD)
1:GCD其实就是线程池技术,因为创建线程会消耗计算机的资源,所以GCD就是提前创建好一些线程形成一个线程池,然后当我们需要使用时,就把代码注入到已经创建好的线程池中的空闲线程中。
2:GCD会使用到块,因为假如我们有五个线程要想运行同一块代码,那么这五个线程就要调用同一个块,该块包括同一块代码。而块其实类似一个匿名的C语言中的函数。它的定义如下:
block 块的模式
返回值(^快的名字)(参数列表) = ^(实际的参数列表){
块的主体
}
3:在块的使用,块中是可以直接访问块外的变量,但是不能直接修改。如果要在块内修改变量,那么该变量是需要这样定义的: __block int num =123;,并且还需要调用块名,才可以使用块。
//1---定义一个无返回值的快
__blockint num =123;
void (^myblock)(void)=^
{
NSLog(@"num = %d", num--);
};