对linux的进行和线程的一点认识

1.总的区别

    进程是担当和分配系统资源的基本单位,线程是任务执行的,比进程更小的基本单位。

    线程可以理解为轻量级的进程,也意味着,线程与进程有一些相似的运行结构,比如,都有属于自己的栈空间,属于自己的变量。同时也意味着线程的运行有比进程更小的开销。

    进程有独立的地址空间,线程没有独立的地址空间,它和与它处于同一进程的线程共享地址空间。


2.由区别产生的一些问题

    线程的优点:

    a,生成一个线程开销小,不需要要像进程那样有代码段,数据段,堆栈段,环境变量等,那么多的资源的维护开销。同时线程的切换上,也比进程要高效的多。所以在多任务的高并发高频通信场景上,多进程表现出比较大的优势。

    b,因为公共地址空间,线程间通信上不像进程间通信那样麻烦,而且效率要高的多。

      c,通过多线程的实现多任务,能优化代码结构,便于程序理解。

  

   线程的缺点:

    a,多线程程序健壮性低于多进程程序,因为,多线程程序中,只要一个线程挂掉,整个进程便被杀死。

    b,多线程对资源进行操作时需要非常注意,防止多线程同时操作,这里需要加锁,对锁的使用需要非常小心,注意上锁的顺序,避免死锁的发生。


   暂时想到这么多。


猜你喜欢

转载自blog.csdn.net/hero00e/article/details/53284296
今日推荐