作者willy69wu31 (小小吴)
看板java
标题Re: [问题] PipedInputStream 相关疑问
时间Thu Apr 24 19:55:25 2014
恕删部分
※ 引述《popcorny (毕业了..@@")》之铭言:
: 因为同个process
: 所以我们应该可以使用更high level的class去传递
: 例如BlockingQueue
: 同样也可以有同样的效果
了解
: 因为pipe有buffer size(pipe size)
: producer如果写到满的时候会block
: consumer如果拉倒空的时候也会block
: 若是同一个人去读或写
: 那就会卡死没人叫醒
了解,为此我好奇去看了预设的缓冲大小,总共是 1024 位元组...
话说第一篇原文我的假设好像错了,我实验了一下,
Output 和 Input
轮流放/拉一个位元组并不会 block,
是像你说的写满或拉到空才会 block。
: : 3. 用 PipedInputStream 和 PipedOutputStream 会不会造成效能问题?
: : 或任何其他的问题? 有人有相关的经验吗?
: 不会.. pipe是很好的东西。因为他的资料都在memeory,所以应该很快..
: 还有你的应用我会选择用temp file
: 因为档案一大,用pipe就gg了..
这点我就觉得奇怪了,请问为什麽档案一大起来就会出问题?
这两个管线类别好像不会囤积用过的资料,
如果 read 出来的资料处理完马上就回收的话应该不会持续占记忆体才对。
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 163.24.254.149
※ 文章网址: http://webptt.com/cn.aspx?n=bbs/java/M.1398340529.A.4A3.html
※ 编辑: willy69wu31 (163.24.254.149), 04/24/2014 19:55:52