Вы имеете в виду?
InputStream is =
synchronized(is) { // obtains lock
// read is
} // release lock
Обычно хорошей идеей является использование одного потока для чтения или записи в поток, в противном случае вы можете получить некоторые запутанные и случайные ошибки.;)
Если вы также хотите использовать блокировку
InputStream is =
Lock lockForIs =
lockForIs.lock();
try {
// read is
} finally {
lockForIs.unlock();
}