1.多线程的理解
在操作系统中线程和进程划分。
操作系统可以同时执行多个任务,每个任务就是进程;进程可以同时执行多个任务,每个任务就是线程。
线程之间相互独立,抢占式执行。对于单核CPU来说同一时刻只能有一个线程执行,一个进程执行。
但是由于CPU不断在这些进程间轮换执行,速度相对人的反应很快,不容易察觉。
既然这样,为什么要使用多线程呢?
a.对于多核cpu,多线程程序充分利用硬件优势
b.对于单核cpu,由于线程上下文的切换会降低整体运行效率。但是为了防止执行耗时操作时界面假死,我们必须把耗时操作单独放在线程中后台执行,防止阻塞主线程无法刷新窗口。
我们来看一下程序的阻塞和非阻塞
这里主要说对于线程之间的公共资源,同时只能由一个线程操作,在此期间其他线程访问将会被挂起直到上一次访问结束,同样客户端执行界面刷新的主线程也会挂起。
非阻塞指的是,一个线程的操作不会阻塞其他线程对事件的接受和处理。
同步和异步
这里说的执行一个操作必须等待执行完成,下面的逻辑才会继续执行,是为同步执行代码
对函数调用后,不会等待执行结果,继续执行下面的代码,是为异步执行。
2.线程使用
原文:https://www.cnblogs.com/zzqhello/p/10672883.html