Linux 多线程编程

来源:互联网 发布:mac cs6破解文件下载 编辑:程序博客网 时间:2024/06/10 18:23

1.线程和进程的区别

   (1)进程是资源分配的最小单位,线程是程序执行的最小单位。

   (2)进程有独立的地址空间,线程没有单独的地址空间。

   

    线程的优点:(1)耗费时间少,效率高。

                            (2)切换时间短。

                            (3)对于一些要求同时进行并且又要共享某些变量的并发操作,只能用线程。

                            (4)一个线程的数据可以直接为其它线程所用,这不仅快捷,而且方便。

                            (5)使多CPU系统更加有效.操作系统会保证当线程数不大于CPU数目时,不同的线程运行于不同的CPU上。

                            (6)改善程序结构.一个既长又复杂的进程可以考虑分为多个线程,成为几个独立或半独立的运行部分,这样的程序会利于理解和修改。

     进程的优点:(1)进程有独立的地址空间,一个进程崩溃后,在保护模式下不会对其它进程产生影响。

                             (2)多进程的程序要比多线程的程序健壮。



2.互斥量和信号量的区别

   (1)mutex要由获得锁的线程来释放(谁获得,谁释放)。而semaphore可以由其它线程释放。

   (2)初始状态可能不一样:mutex的初始值是1 ,semaphore的初始值可能是0(或者为1)。

      






原创粉丝点击