gpt4 book ai didi

c 编程实现不同应用程序的互斥

转载 作者:行者123 更新时间:2023-11-30 17:14:04 25 4
gpt4 key购买 nike

我有作业。每个应用程序都必须等待其每个事件。我可以将此场景编写为 pthread,但是,我必须使用不同的应用程序编写此场景。

我可以使用以下代码将应用程序编写为pthread;

pthread_mutex_lock(&mutex2);
printf("I am in i");
pthread_mutex_unlock(&mutex2);

向我请求;用户按以下格式运行应用程序;

./application 1
./application 2
./application 3

1,2,3代表线程id值,每个应用程序都包含循环,每个应用程序依次运行代码。

直到第一个应用程序的第一个循环完成后,第二个应用程序才会启动,第三个应用程序必须等待第一个和第二个应用程序的第一个循环结束。

我该如何编写这个应用程序?

谢谢

最佳答案

您想要的行为可以通过 interprocess communication (IPC) 来实现。例如,它可以通过带有 bool 标志的共享内存来实现。我不知道您要为什么操作系统编写应用程序,因此目前无法透露更多具体信息。

“./”pthread来看,我建议目标操作系统是*nix系列之一,但你最好澄清一下。如果是这样的话shmget并且公司可能会满足您的需求。

顺便说一句,您写道您将像这样启动应用程序:

./application 1
./application 2
./application 3

这意味着它们将依次运行,否则您将在后台启动它们:

./application 1&

如果您确实必须完全按照您所描述的方式运行它们,那么您必须 fork 并从父进程退出,以便将控制权返回到 shell 并在子进程中运行循环。

同样,这对于具有类似 bash shell 的 *nix 系统来说是宽松的。

关于c 编程实现不同应用程序的互斥,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30474413/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com