一、进程和线程(可以参考自己项目:61天-数据库网络--多线程之NSThread)
1:一个应用程序就是一个进程,之后进程下面包括多个线程(至少一个线程)。
2:计算机是以线程为单位的。
3:线程是同步的。
4:假如我们的电脑是双核的,那么就可以同时运行两个线程,而其他的线程就需要等待CPU的分配。
5:通过时间片的切割,来切换线程。(时间片切割就是线程所需占用时间是多少,占用时间越多,说明抢占到的机会越大)
6:线程加锁----由于线程是同步的,所以有时候会出现不同线程同时运行一个事件的情况(例如买火车票事件中,窗口一、和窗口二就可能同时会在休眠的时候,同时卖第3张票),所以我们就需要对事件进行加锁(而且必须是同一把锁),从而避免上述情况。同时也需要在相应地方解锁
7:使用多线程的情况:
(1):我们想使一个应用程序抢占过多的系统资源时就是用多线程技术,因为一个进程就是多个线程,线程越多抢占CPU就越多,比如说抢占CPU的时间。
(2):一个应用程序中,有一个A线程需要一直运行或者运行时间很长,那么我们就要使用多线程,使这个A线程可以在后台运行,避免只有一个A线程而导致整个应用程序都停着等待A线程的结束。
(3):做一件事情时,我们想让多个应用程序一起来做,比如我们要下载一个文件,不过这个文件特别大,那么我们就可以通过三个线程来分别下载该文件的一部分。
(4):启动线程的方式有一种是: