Java 从流读取时如何调用/执行超时

Java 从流读取时如何调用/执行超时,java,inputstream,outputstream,apache-commons-dbcp,dbcp,Java,Inputstream,Outputstream,Apache Commons Dbcp,Dbcp,从流读取时如何调用/执行超时?我在log4j appender中测试jdbc中的dbcp2池,我需要在单元测试中检查轮询是否有效。我尝试设置睡眠(5000),但不起作用-不会出现超时: final InputStream from_client = client.getInputStream(); final OutputStream to_server = server.getOutputStream(); new Thread() { public void run() {

从流读取时如何调用/执行超时?我在log4j appender中测试jdbc中的dbcp2池,我需要在单元测试中检查轮询是否有效。我尝试设置睡眠(5000),但不起作用-不会出现超时:

final InputStream from_client = client.getInputStream();
final OutputStream to_server = server.getOutputStream();

new Thread() {
    public void run() {
        int bytes_read;
        try {
            while((bytes_read = from_client.read(request)) != -1) {

                if (interrupt) {
                    System.out.println("I trying to invoke timeout .... " + interrupt);
                    Thread.sleep(5000);
                    interrupt = false;
                }
                
                to_server.write(request, 0, bytes_read);
                to_server.flush();
            }
        }
        catch (IOException e) {}
        
        try {
            to_server.close();
        } catch (IOException e) {}
    }
}.start();