我这样做是最近的一个项目我编码,我实现了这个概念是有一个线程启动所有的人,然后使用信号量和互斥来控制在处理共享内存时,进程间同步问题。
在显示器设计模式的背景下,显示器的概念是一种基本上可以隐藏相互冲突的结构。这个概念用C++ Boost表达,但在核心C++或C中不存在。您在C中处理这种类型的作业的方式是使用良好的老式互斥体(二进制信号量)和信号量。您可以阅读关于此here的更多信息。
下面是初始化信号量和互斥量的基本方法,您可能需要做一些阅读以了解如何以及何时使用它们中的每一个,因为这里有点长,但是here是获取链接你开始了。
pthread_mutex_t myMutex;
sem_t mySemaphore;
int status;
status = pthread_mutex_init(&myMutex, NULL);
if(status != 0)
exit_with_error("There was an Error Initalizing the Mutex\n");
status = sem_init(&mySemaphore, 0, 0);
if(status != 0)
printf("There was an Error Initalizing the Semaphore\n");
此实现是通过函数?我已经看到了一些次要的代码,例如:monitor network {/ * code and conditions in here * /}。是伪代码还是显示器的关键字/数据结构呢? – 2010-09-30 04:17:23
我已经淘汰了我的监控功能,并用更直接的答案替换了它。如果你想回复这段代码,只需告诉我,我只是重新阅读你的问题,并看到它不是你所要求的。在你上面的评论中,你提到的代码是伪代码,据我所知,构造不存在于C中。 – JonVD 2010-09-30 04:27:00
谢谢,我想我会尝试通过带有信号灯的main函数来实现我的,并尝试用它来监视各种线程。我需要阅读更多关于这个话题的内容,这很复杂。 – 2010-09-30 04:31:42