定义:
多线程(英语:multithreading),是指从软件或者硬件上实现多个线程并发执行的技术。具有多线程能力的计
算机因有硬件支持而能够在同一时间执行多于一个线程,进而提升整体处理性能。
在一个程序中,这些独立运行的程序片段叫做“线程”(Thread).
2. 线程和进程:
每个在系统上运行的程序都是一个进程。每个进程包括一到多个线程。进程也可能是整个程序或者是部分程序的动态执行。线程是一组指令的集合,或者是程序的特殊段,它可以在程序里独立执行,也可以理解为代码运行的上下文,所以线程
基本上轻量的进程,它负责单个程序里执行多任务,通常有操作系统负责多个线程的调度。
线程和进程的区别是:子进程和父进程哟不同的代码和数据空间,而多个线程则共享数据空间,每个线程有自己的执行
堆栈 和程序计数器为其执行上下文,多线程主要是为了节约CPU时间
3. 多线程的优缺点:
优点:
《1 使用多线程可以把占据时间长的程序中的任务放在后台去处理。
《2 用户界面可以更加吸引人,比如用户在点击了一个按钮去触发某些时间的处理,可以弹出一个进度条来显
示处理的进度。
《3 程序的运行速度可能加快。
《4 在一些等待的任务上实现如用户的输入,文件读写和网络收发数据,线程就比较有用。
缺点:
《1 如果有大量的线程,会影响性能,因为操作系统需要在它们之间切换。
《2 更多的线程则需要更多的内存空间
《3 线程可能给程序带来更多的bug
《4 线程终止需要考虑其对程序运行的影响
《5 通常块模型数据是在多个线程间共享的,需要防止线程死锁情况的发生。
iPhone中的线程应用并不是无节制的,官方给出的资料显示,iPhone OS下的主线程的堆栈大小是1M,第二个线程开始就是512KB,并且该值不能通过编译器开关或线程API函数来更改,只有主线程有直接修改UI的能力