perl 语言中使用threads:shared如何shared文件句柄,要的结果是多个线程同时输出到一个文件句柄中。
2个回答
展开全部
thread share 并不能 share file handle,只为 share 只支持 scalar, array, hash 这些简单结构. 如果真要做到这件事要, 得用上 Thread::Queue, IO::* 和open ">&=fh" 这类的句柄.. 会很复杂的.
所以, 你可以考虑先 share 一个 array, 再将要写的东西都 push 到一条 array 上, 最後, 用一条专用 thread 定时去将 array 里的东西都写入档案中, 然後再清空那条阵列. 那样会来得更加妥当.
( 这其实是 ls 77pm 的点子, 要采纳就点他的吧! 我本来只是想补充一下, 但不够写, 呵呵 )
所以, 你可以考虑先 share 一个 array, 再将要写的东西都 push 到一条 array 上, 最後, 用一条专用 thread 定时去将 array 里的东西都写入档案中, 然後再清空那条阵列. 那样会来得更加妥当.
( 这其实是 ls 77pm 的点子, 要采纳就点他的吧! 我本来只是想补充一下, 但不够写, 呵呵 )
追问
这个方法挺实用的,不错!
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询