iOS多线程知识总结 1. iOS中苹果提供4钟方案来帮助我们实现多线程: (1) 纯C语言的pthread,偏底层,需要程序员手动管理线程的生命周期,基本不用。 (2) OC语言的NSTread,需要手动管理线程生命周期,偶尔调试用来获取当前线程[NSTread currentTread/main ...
分类:
移动开发 时间:
2016-05-13 18:46:41
阅读次数:
220
1. NSOperation简介
优点
是OC语言中基于GCD的面向对象的封装
使用起来比GCD更加简单(面向对象)
供了一些用GCD不好实现的功能
苹果推荐使用,使用NSOperation不用关心线程以及线程的生命周期
特点
NSOperation是一个抽象类
不能直接使用(方法没有实现)约束子类都具有共同的属性和方法
NSOperation的子类
...
分类:
编程语言 时间:
2016-05-12 20:03:43
阅读次数:
240
1.GCD的核心是:将任务添加到队列;
2.GCD中的任务是使用block封装的;
3.任务的取出遵循先进先出,后进后出的原则;GCD会自动的将队列中的人物取出,放到对应的线程中执行;
4.GCD会自动的管理线程的生命周期(创建线程,调度任务,线程销毁);线程在一定的时间内可以复用;
5.GCD的队列分为两大类型:
串行队列(serial dispatch queue):任务一个接一个执...
分类:
编程语言 时间:
2016-05-09 07:02:02
阅读次数:
214
1. synchonrize如何更好地使用?
谈到这个问题, 主要先从这几个方面来入手:
线程的几种状态synchonrize的几种使用方法比较synchonrize和volatile比较synchonrize和juc中的锁比较用了锁就真的没有并发问题了么?
1.1 线程的几种状态
不熟悉线程的生命周期和相互的转换控制, 是无法写好并发代码的.
图简单易懂,...
分类:
编程语言 时间:
2016-05-06 16:00:23
阅读次数:
261
目录
目录
一进程进程的组成
进程与程序
进程的基本状态及状态之间的关系
进程间的通信方式
二线程进程内的线程
线程的生命周期
线程的状态
多线程的优点
线程的同步与互斥
三进程与线程的区别与联系一、进程 进程的引入多个程序在执行时,需要共享系统资源,从而导致各程序在执行过程中出现相互制约的关系,程序的执行表现出间断性的特征。
这些特征都是在程序的执行过程中发生的,是动态的...
分类:
编程语言 时间:
2016-05-06 15:48:45
阅读次数:
172
线程状态: 与人有生老病死一样,线程也同样要经历新建、就绪、运行(活动)、阻塞和死亡五种不同的状态。这五种状态都可以通过Thread类中的方法进行控制。 创建并运行线程: ① 新建状态(New Thread):在Java语言中使用new 操作符创建一个线程后,该线程仅仅是一个空对象,它具备类线程的一 ...
分类:
编程语言 时间:
2016-05-04 01:06:53
阅读次数:
137
线程也同样要经历开始(就绪)、运行、挂起和停止四种不同的状态。这四种状态都可以通过Thread类中的方法进行控制。下面给出了Thread类中和这四种状态相关的方法。 // 开始线程 publicvoid start( ); publicvoid run( ); // 挂起和唤醒线程 publicvo ...
分类:
编程语言 时间:
2016-04-22 13:20:17
阅读次数:
159
一、线程的生命周期
线程状态转换图:
1、新建状态
用new关键字和Thread类或其子类建立一个线程对象后,该线程对象就处于新生状态。处于新生状态的线程有自己的内存空间,通过调用start方法进入就绪状态(runnable)。
注意:不能对已经启动的线程再次调用start()方法,否则会出现java.lang.IllegalThreadStateExcep...
分类:
编程语言 时间:
2016-04-20 02:01:39
阅读次数:
233
一.线程的生命周期及五种基本状态
关于Java中线程的生命周期,首先看一下下面这张较为经典的图:
Java线程具有五中基本状态
新建状态(New):当线程对象对创建后,即进入了新建状态,如:Thread t = new MyThread();
就绪状态(Runnable):当调用线程对象的start()方法(t.start();),线程即进入就绪状态。处于就绪状态的线程,只是说明此线程...
分类:
编程语言 时间:
2016-04-12 17:36:25
阅读次数:
284
一、线程的生命周期 线程状态转换图: 1、新建状态 用new关键字和Thread类或其子类建立一个线程对象后,该线程对象就处于新生状态。处于新生状态的线程有自己的内存空间,通过调用start方法进入就绪状态(runnable)。 注意:不能对已经启动的线程再次调用start()方法,否则会出现jav ...
分类:
编程语言 时间:
2016-04-05 00:45:34
阅读次数:
411