黑马程序员技术交流社区

标题: 管道流的疑惑 [打印本页]

作者: 明锦添    时间: 2013-4-11 10:18
标题: 管道流的疑惑
本帖最后由 明锦添 于 2013-4-13 09:48 编辑

在管道流多线程中,是输入流线程执行一次,管道中有了内容,就执行等待中的输出流线程一次,还是说管道中有了内容,这两个线程还要抢夺执行权呢?如果我的输入流线程中执行的是循环输入语句,会不会出现我往管道中覆盖输入了多次内容后才执行一次输出流线程呢?
作者: 通行天下    时间: 2013-4-11 10:33
多个线程在内存中的执行时间是由CPU随机分配的,有的线程可能执行的时间会多点,有的会少点;但是,CPU在一个时间点只能执行一个线程!!!
作者: 梁航斌    时间: 2013-4-11 11:11
可以将管道输出流连接到管道输入流来创建通信管道。管道输出流是管道的发送端。通常,数据由某个线程写入 PipedOutputStream 对象,并由其他线程从连接的 PipedInputStream 读取。不建议对这两个对象尝试使用单个线程,因为这样可能会造成该线程死锁。如果某个线程正从连接的管道输入流中读取数据字节,但该线程不再处于活动状态,则该管道被视为处于 毁坏 状态。
作者: 贾振凯    时间: 2013-4-11 15:33
管道流的读写方法都是阻塞式的,所以:
如果写入线程完成了写入操作,当读取流读取数据之前此线程会阻塞,所以此时只有读取流能够获得资源执行
读取流同上
所以他们会很协调的运行
对于单线程的情况参照楼上的吧
作者: 明锦添    时间: 2013-4-11 20:40
技术分果然不是白混的,楼上的才是我要的答案,不知道我要问什么的就不要乱说,会害死人的
作者: 黄玉昆    时间: 2013-4-11 22:48
明锦添 发表于 2013-4-11 20:40
技术分果然不是白混的,楼上的才是我要的答案,不知道我要问什么的就不要乱说,会害死人的 ...

送分的机会不多哦,如果你觉得谁回答的好,你也可以给相应的奖励金币哦,呵呵
作者: 黄玉昆    时间: 2013-4-13 08:52
如果问题未解决,请继续追问,如果没有问题了,请将帖子分类 改为“已解决”,谢谢




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2