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

时间:2014-06-21 18:08:06

标签: c linux multithreading

我必须创建三个线程:

  1. 从控制台读取字符串,";"停止阅读
  2. 计算那些字符串的字符
  3. 显示字符串
  4. 使用管道进行沟通。

    问题在于我不知道这怎么可行。你有什么建议吗?我一直在考虑这样的事情:


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

    重复这一过程,直到读完所有字符串,最后显示Thread3中的所有输出。


    但问题是我无法按顺序逐个运行线程,而且我不知道Thread3中的外部数组是什么。

1 个答案:

答案 0 :(得分:2)

分解每个帖子的问题。

线程1:

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

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

          
      1. 从管道[2]
      2. 一次读取一个字符的循环   
      3. 将字符打印到stdout]
      4.   
      5. 如果读取的字符不是'.',请转到1。
      6.   
      7. 否则,终止线程。
      8. 线程 main()

            
        1. 创建管道
        2.   
        3. 创建主题
        4.   
        5. 等待线程终止。
        6.   
        7. 终止
        8. 至于创建线程的顺序,我会对事物进行编码以使其无关紧要。但是,我的首选是启动线程3,然后是2,然后是1。

相关问题