none
标准输入 RRS feed

  • 问题

  • 有一段代码,在网络服务器上运行,从标准输入读取数据。如果这段代码在不同的进程中被调用,标准输入被重定向为从一个流中读取,每次都指向一个不同的流,这段代码会不会出问题?标准输入如果是在各个进程中共享的,我担心数据会混在一起? 谢谢
    2010年7月18日 10:32

答案

  • 楼主说的标准输入是否是控制台标准输入 (Console Standard Input)?或 stdin?如果是的话,重定向标准输入是一个很好的方法,只要能保证每个进程中的重定向流没有死锁,程序中线程同步控制比较好,应该没有太大的问题。

    如果不是,要着重考虑线程同步模型和重定向的代码实现,如果实现的好,比如引入 producer/consumer 模型,因该问题也不大。:)


    Mark Zhou
    2010年7月19日 9:03

全部回复

  • 最简单的办法,就是在每个进程实例化这个标准输入对象,执行相应的操作。这个只是代码的复用,运行时不会相互干扰。


    family as water
    2010年7月19日 2:02
  • 楼主说的标准输入是否是控制台标准输入 (Console Standard Input)?或 stdin?如果是的话,重定向标准输入是一个很好的方法,只要能保证每个进程中的重定向流没有死锁,程序中线程同步控制比较好,应该没有太大的问题。

    如果不是,要着重考虑线程同步模型和重定向的代码实现,如果实现的好,比如引入 producer/consumer 模型,因该问题也不大。:)


    Mark Zhou
    2010年7月19日 9:03