1.线程:按照线型的顺序执行的流程。 叫做线程

-(void)method{

[self runA];

[self runB];

}//先执行runA ,如果说RunA没有执行完成,runB  就一直等到runA 执行完毕,再执行runB,因为他们都是一个线程,单线程好比一个人去执行三个任务,先执行第一个任务,执行完成再执行第二个任务,依次完成,所有任务都我一个人完成。多线程好比,我在执行第一个任务,我叫我兄弟去执行第二个,那我就可以去做第三个任务了,不必等他。

进程:每一个进程就是一个应用程序。都有独立的内存空间,一般来说一个应用程序存在一个进程,但也有多个进程的情况,同一进程中的线程共享内存中的内存和资源。一个进程里面包含多个线程,。浏览器是有很多个进程的。

 

多线程概念:每一个程序都有一个主线程,程序启动时创建(调用主线程来启动),程序退出时,主线程也就停止了,多线程中一个应用程序有多个线程,(比如一颗大树,都有一个主躯干,其他的分支就是线程,主线程就是主躯干) 使用多线程可以CUP的使用效率,防止主线程阻塞。任何有可能堵塞住线程的任务不要放在主线程中执行,一切跟UI有关的操作都放在主线程中执行(按钮等)。跟UI无关的时候比如网络请求,下载电影占很长时间等。

NSOperation 是一个操作(任务),一个操作就是一个线程。

举例:一百人买票,一个窗口就是一个线程,一人一分钟,就是一百分钟,多线程就是多个窗口,提升性能,

 

NSThread

第一种开启新的线程的调用 mutableThread

NSThread *t [NSTHread alloc]initWithTarget:self selector:@selector(mutableThread) object:nil];

[t start]; // 需要手动开启

第二中开启新的线程的调用mutableThread,不需要手动调用

[NSTHread detachNewThreadSelector:@selector(mutableThread) toTarget:self withObject:nil];

第三种开启新的线程调用mutableThread,在后台执行这个方法,前两个方法基本不用。常用的第四种

[self performSelectorInBackground:@selector(mutableThread)withObject withObject:nil];

+(BOOL)[isMuliThreaded ]是否是多线程 是的话输出1,不是输出0

第四种 

 

posted on 2015-07-29 16:27  维嘉------亮仔  阅读(168)  评论(0编辑  收藏  举报