linux多线程并发

多线程并发

进程和线程的概念

  • 进程

    进程包括程序映象、地址空间等要素。内核采用PCB来管理进程。进程是内核进行调度的基本单元,每个独立的进程都有自己的代码段、数据段以及堆栈,它们有自己的虚拟地址空间,多个进程间互不影响。
  • 线程

    在linux系统中,实际上,线程和进程都是以统一的方式来管理的。线程也是内核进行调度的基本单元。

    不同点在于:

    线程没有自己独立的地址空间,创建出来的新线程将和创建它的进程
    (或线程)共享同一个虚拟地址空间,它们被置于同一个线程组中。线程的代码 > 段、全局数据段、堆及其他一些诸如文件描述符表等内核管理的东西在同一组内是共享的,
    但是每个线程都有自己独立的栈空间。

    因此,多线程环境下多全局变量的访问有可能需要同步,但是局部变量仍然有各自的存储空间,互不影响。

  • 与多进程相比,多线程具有的优点:

    1,线程适合多任务通信环境。多线程间的通信比多进程的更简单,但是需要注意同步问题

    2,线程的创建和调度更高效。创建线程时,无需单独复制进程的内存空间或文件描述符等;切换线程时不需要更换整个页表。

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