今天看了看nginx的介绍,讲到了nginx支持多进程与多线程,进程线程这俩概念工作中接触的并不多,所以在此记下自己的理解,以免忘记。
假如一个CPU只可以运行一个进程,而一个进程可以同时运行多个线程。
在一个进程中,有很多个可供线程使用的空间,然而当多个线程共同使用同一块空间时可能会报错,所有需要加“锁”的机制,
比如互斥锁(Mutual exclusion,缩写 Mutex):当某一特定空间在被使用时,就不允许其他线程进入了,只能等待使用结束。这样做的好处是保证了数据的准确性,但是可能导致运行变慢。
还有信量号(Semaphore):多个线程允许同时使用同一块空间,但是有数量限制,到一定数之后,会阻止其他线程使用,只能有一个使用结束之后,才可以有另一个线程进入。
从网上看了一个有趣的解释,讲的挺好的,复制下链接吧,以后可以看看。
http://www.ruanyifeng.com/blog/2013/04/processes_and_threads.html