【问题标题】:thread synchronization vs process synchronization线程同步与进程同步
【发布时间】:2011-01-07 07:19:44
【问题描述】:
  1. 我们能否为线程同步和进程同步使用相同的同步机制
  2. 什么是仅在进程内可用的同步机制

【问题讨论】:

    标签: multithreading process synchronization


    【解决方案1】:

    信号量通常用于共享内存访问等方面的多进程同步。

    临界区、互斥锁和条件是进程内线程同步的更常用工具。

    一般来说,用于同步线程的方法是不用于同步进程的,但反之则通常不正确。事实上,使用信号量进行线程同步是相当普遍的。

    【讨论】:

    • 有这方面的标准材料吗?
    【解决方案2】:

    有几个同步实体。它们有不同的目的和范围。不同的语言和操作系统以不同的方式实现它们。例如,在 Windows 上,您可以使用监视器来同步进程中的线程,或者使用互斥锁来同步进程。有信号量、事件、障碍......这一切都取决于具体情况。 .NET 提供了所谓的精简版本,这些版本具有改进的性能,但仅针对进程内同步。

    但要记住一件事。同步进程需要系统资源、分配和操作(锁定和释放),这需要相当长的时间。

    【讨论】:

      【解决方案3】:

      一个应用程序由一个或多个 过程。一个过程,用最简单的方式 术语,是一个执行程序。一个或 更多线程在上下文中运行 过程。 线程是一个基本单元 操作系统分配的 处理器时间。一个线程可以执行 过程代码的任何部分, 包括目前正在 由另一个线程执行。

      Ref.

      至于具体的同步结构,这将取决于操作系统/环境/语言

      【讨论】:

        【解决方案4】:

        一个区别:进程内的线程对进程内存具有同等的访问权限。内存通常是进程私有的,但可以显式共享。

        【讨论】:

          猜你喜欢
          • 2013-03-18
          • 2014-04-30
          • 2013-03-01
          • 1970-01-01
          • 2015-09-20
          • 1970-01-01
          • 1970-01-01
          • 2023-04-01
          相关资源
          最近更新 更多