ios的NSThread和android的Thread的差不多,都是开启一个线程,因为子线程中是不能进行UI更新操作的,所以子线程需要与主线程进行沟通。一般情况下android的Thread都会结合handler共同实现UI的更新,而ios中则是通过performSelectorOnMainThread 方法与主线程进行沟通,从而达到更新UI的目的。
之所以我们在写东西的时候会用到线程,是因为一些耗时或者需要频繁更新UI的操作如果放在主线程中执行的话,会让应用变得很卡,甚至被系统给kill掉,比如不可能在下载文件的时候手机就处于不可用的状态吧!多线程的出现就是为了避免这种情况的发生。
今天写这个demo就是为了理解多线程的概念并记录下一些NSThread的基本操作。总共开启了3个子线程,其中两个线程陷入死循环模拟耗时操作,并由bool变量run控制同步更新UI操作。另外一个线程则实现了从网上下载图片并将图片作为应用的背景的操作,这是一个真实的耗时操作。惯例,先看效果图,然后上代码;