inputstream close()阻塞

问题描述

各位大神,我用HttpUrlConnection建立了一個下載文件的connection:connection=(HttpURLConnection)url.openConnection();connection.setConnectTimeout(Integer.MAX_VALUE);connection.setDoInput(true);connection.setDoOutput(true);connection.setUseCaches(false);connection.setRequestMethod("GET");connection.setRequestProperty("Connection","Keep-Alive");input_stream=connection.getInputStream();然后得到了一个inputstream问题是当我打算关闭这个inputstream时,程序有可能会一直阻塞在close()if(input_stream!=null){input_stream.close();//有机会会阻塞在这里input_stream=null;}请问这个阻塞的原因是什么呢??谢谢各位!

时间: 2024-08-23 17:55:10

inputstream close()阻塞的相关文章

c++关于socket的问题,阻塞,超时

问题描述 c++关于socket的问题,阻塞,超时 本人是写cocos2dx的,这是个跨平台的引擎,需要满足win32,ios和android平台,这里我有几个疑问 关于阻塞,在win32平台下,socket默认是阻塞,connect也是阻塞,但是它是不是有个 默认的超时时间啊,我再win32平台上连接一台关闭的服务器,它会假卡死一会,然后就正常了, 但是在android平台上却一直都是卡死,我想这是不是和linux上的socket有关系呢 解决方案 socket连接超时问题Socket和Inp

终止阻塞的线程

线程状态     我们知道,一个线程可以处于以下四种状态之一:     1. 新建(New):当线程被创建时,它只会短暂地处于这种状态.此时它已经分配了必须的系统资源,并执行了初始化.此刻线程已经有资格获取CPU时间了,之后调度器将把这个线程转变为可运行状态或阻塞状态.     2. 就绪(Runnable):在这种状态下,只要调度器将CPU时间片分给线程,线程就可以运行.也就是说,在任意时刻,线程可以运行也可以不运行.     3. 阻塞(Blocked):线程能够运行,但有某个或多个条件阻止

Java网络编程从入门到精通(32):一个非阻塞I/O的例子

为了使读者更好地理解非阻塞I/O,本节给出了一个简单的例子用来演示如何将非阻塞I/O应用到网络程序中.读者可以先不必管这个例子的具体细节.因为这个例子的主要目的并不是讲解非阻塞I/O的使用,而是先让读者对非阻塞I/O有一个笼统的感性认识.在看完这个例子后,读者可能会有很多疑问,在本章后面的部分将会逐渐揭开这些迷团.这个例子的主要功能是访问新浪网,并将新浪网的首页在控制台上输出. package test; import java.net.*; import java.nio.*; import

InputStream中read()与read(byte[] b)

http://blog.csdn.net/snihcel/article/details/7893097 read()与read(byte[] b)这两个方法在抽象类InputStream中前者是作为抽象方法存在的,后者不是,JDK API中是这样描述两者的:  1:read() : 从输入流中读取数据的下一个字节,返回0到255范围内的int字节值.如果因为已经到达流末尾而没有可用的字节,则返回-1.在输入数据可用.检测到流末尾或者抛出异常前,此方法一直阻塞.  2:read(byte[] b

线程-android怎么实现蓝牙实时接收数据 inputstream

问题描述 android怎么实现蓝牙实时接收数据 inputstream 2C 现在在做一个APP 单片机通过蓝牙模块 将数据发送到手机上并显示现在搜索蓝牙 配对 连接都没问题但是做到接收数据这一步的时候遇到了一些问题首先是 调用inputstream函数的时候 程序会阻塞(我也看了资料说是放到线程里 但是放进去之后 却不能实时接收了 或者说是不能接收完全)然后是 我想设置一个 开始接收的按钮 按一下就开始自动接收 再按另一个就停止接收 然后这一部分又怎么实现 有没有大神可以帮我?求助!(我现在

Java 进程执行外部程序造成阻塞的一种原因_java

查了好多资料,差点就动手翻Java源码了,最后结合一篇文章(忘记出处了),想到了输出流会阻塞进程执行. Java进程执行有一个输入流,两个输出流(相对于外部程序).当两个输出流有内容输出,而Java执行程序没有及时清空输出流时就会阻塞进程. 现贴出代码,希望能帮助到有需要的同行: 复制代码 代码如下: /**  * pdf转swf函数  * @param path 输入输出文件路径  * @param inputFileName 输入文件名  * @param outputFileName 输出

Java IO 之 InputStream源码

一.InputStream InputStream是一个抽象类,即表示所有字节输入流实现类的基类.它的作用就是抽象地表示所有从不同数据源产生输入的类,例如常见的FileInputStream.FilterInputStream等.那些数据源呢?比如: 1) 字节数组(不代表String类,但可以转换) 2) String对象 3) 文件 4) 一个其他种类的流组成的序列化 (在分布式系统中常见) 5) 管道(多线程环境中的数据源) 等等 二者,注意它是属于字节流部分,而不是字符流(java.io

使用阻塞式队列处理大数据

前言 我们都知道,JAVA对于文本文件在读时是独占的,即使可以用多线程去读也涉及到一个POS(定位读)的问题,这在设计框架上会带来许多的复杂性,同时也带来代码上的不可维护性以及会经常出一些千奇百怪的错误(多线程程序由其如此). 传统阻塞式做法的敝病 特点:多线程,阻塞式导入 缺点:阻塞式,导入速度慢,线程状态无法精确记录,速度慢内存开销大 优秀的做法 多线程 非阻塞式 内存开销恒定 线程可以自由增加 我们将采用的做法 在数据提取的设计时基于以下几个指标考虑: 1)内存占用数始终必须恒定值 2)使

实现非阻塞套接字的一种简单方法 使用 JSSE 和 NIO 实现非阻塞通信的一种快速方法

简介: 尽管 SSL 阻塞操作――当读写数据的时候套接字的访问被阻塞――与对应的非阻塞方式相比提供了更好的 I/O 错误通知,但是非阻塞操作允许调用的线程继续运行.本文中,作者同时就客户端和服务器端描述了如何使用Java Secure Socket Extensions (JSSE) 和 Java NIO (新 I/O)库创建非阻塞的安全连接,并且介绍了创建非阻塞套接字的传统方法,以及使用JSSE 和 NIO 的一种可选的(必需的)方法. 阻塞,还是非阻塞?这就是问题所在.无论在程序员的头脑中多