gpt4 book ai didi

c - 我的多线程应用程序的逻辑?

转载 作者:行者123 更新时间:2023-11-30 18:56:26 25 4
gpt4 key购买 nike

我必须创建三个线程:

  1. 从控制台读取字符串,“;”停止阅读
  2. 计算该字符串的字符数
  3. 显示字符串

并使用管道进行通信。

问题是我不知道这怎么行。您有什么建议吗?我一直在想这样的事情:

<小时/>

Thread1 读取单个字符串,然后 Thread2 计算字符数,Thread3 将输出保存在某个外部数组中。

重复此操作,直到读取所有字符串,最终显示 Thread3 中的所有输出。

<小时/>

但问题是我无法让线程按照该顺序一一运行,而且我不知道 Thread3 中的外部数组可能是什么。

最佳答案

分解每个线程的问题。

线程 1:

  1. 从 stdin 一次读取一个字符的循环
  2. 通过管道[1]将字符发送到线程2
  3. 如果读取的字符不是'.',则转到1。
  4. 否则,终止线程。

线程 2:

  1. 从管道[1]一次读取一个字符的循环
  2. 通过管道[2]将字符发送到线程3
  3. 增加 charCount 变量。
  4. 如果读取的字符不是'.',则转到1。
  5. 否则,打印 charCount 并终止线程。

线程 3:

  1. 从 Pipe[2] 一次读取一个字符的循环
  2. 将字符打印到标准输出]
  3. 如果读取的字符不是'.',则转到1。
  4. 否则,终止线程。

线程main()

  1. 创建管道
  2. 创建话题
  3. 等待线程终止。
  4. 终止

至于线程的创建顺序,我会编写代码,这样就无关紧要了。不过,我的偏好是启动线程 3,然后是 2,然后是 1。

关于c - 我的多线程应用程序的逻辑?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24344418/

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