关于线程的一些术语

并发:同一时刻只能有一条指令执行,但多个进程指令被快速轮换执行,使得在宏观上具有多个进程同时执行的效果。
总结一句:看起来同时发生,单核
关于线程的一些术语_第1张图片
假设CPU转一圈1ms 因为人的反应时间 看起来每个程序同时执行一样,实际的在1ms内每个应用程序只执行了0.2ms的时间。

并行:同一时刻,有多条指令在多个处理器上同时执行。
总结一句:真正的同时发生 多核

同步:彼此有依赖关系的调用不应该“同时发生”,而同步就是要阻止那些“同时发生”的事情。

总结一句:阻止事件同时发生,就是一种机制

关于线程的一些术语_第2张图片
Record记录变量的变化(例如一个条目),如果add函数和delete函数同时被调用,那变量record是加1还是减1呢。这时就需要一个机制来处理了,比如add函数在调用record变量,那么就把record变量锁住(锁的作用就是不让别人去使用),所以一旦add函数调用record变量并且锁住了变量,即使delete函数过来了,也调用不了record变量,因为变量被锁住了。
这个锁就是一个同步机制,为了防止事件同时发生。

异步:异步的概念和同步相对,任何两个彼此独立的操作是异步的,它表明事情独立的发生。
总结一句:彼此独立的操作都是异步的。

你可能感兴趣的:(linux,多线程)