【问题标题】:problems with understanding and using semaphore理解和使用信号量的问题
【发布时间】:2013-10-20 17:18:57
【问题描述】:

我是信号量概念的新手,我查看了一些在线示例,我了解到如果我们使用线程,我们可以使用预定义的元素,例如

/* The mutex lock */
pthread_mutex_t mutex;

/* the semaphores */
sem_t full, empty;

为了使用它们,我们可以再次利用预定义的功能,例如:

 /* acquire the empty lock */
  sem_wait(&empty);
  /* acquire the mutex lock */
  pthread_mutex_lock(&mutex);

但我的问题是,如果我不使用线程而只想使用进程,是否有任何像上面这样的预定义项目,或者我应该从头开始编写信号量和...???

【问题讨论】:

  • 我不确定操作系统标签是否适用。

标签: operating-system semaphore


【解决方案1】:

有很多跨进程同步原语,包括命名信号量。通常跨进程原语使用名称来确定唯一实例。例如,如果您将同名发送到:

sem_open(const char *name, int oflag)

它将创建新的或打开现有的(从其他进程创建的)信号量。您只需要确保该名称在系统中是唯一的,并且对于您的所有进程都是相同的。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-09
    • 1970-01-01
    相关资源
    最近更新 更多