1.线程和进程的区别
(1)进程是资源分配的最小单位,线程是程序执行的最小单位。
(2)进程有独立的地址空间,线程没有单独的地址空间。
线程的优点:(1)耗费时间少,效率高。
(2)切换时间短。
(3)对于一些要求同时进行并且又要共享某些变量的并发操作,只能用线程。
(4)一个线程的数据可以直接为其它线程所用,这不仅快捷,而且方便。
(5)使多CPU系统更加有效.操作系统会保证当线程数不大于CPU数目时,不同的线程运行于不同的CPU上。
(6)改善程序结构.一个既长又复杂的进程可以考虑分为多个线程,成为几个独立或半独立的运行部分,这样的程序会利于理解和修改。
进程的优点:(1)进程有独立的地址空间,一个进程崩溃后,在保护模式下不会对其它进程产生影响。
(2)多进程的程序要比多线程的程序健壮。
2.互斥量和信号量的区别
(1)mutex要由获得锁的线程来释放(谁获得,谁释放)。而semaphore可以由其它线程释放。
(2)初始状态可能不一样:mutex的初始值是1 ,semaphore的初始值可能是0(或者为1)。