Каким образом java.net.Socket является потокобезопасным?

У меня есть сокет, который я читаю и пишу через BufferedReaders и BufferedWriters. Я не уверен, какие операции можно выполнять из отдельных потоков. Я бы предположил, что запись в сокет из двух разных потоков одновременно - плохая идея. То же самое с чтением из сокета одновременно из двух разных потоков. А как насчет чтения в одном потоке при записи в другом?

Я спрашиваю, потому что хочу, чтобы один поток был заблокирован на длительное время при чтении, поскольку он ожидает дополнительных данных, но во время этого ожидания у меня также есть случайные данные для отправки розетка. Я не понимаю, является ли это потокобезопасным, или мне следует отменить чтение перед записью (что будет раздражать).

9
задан lacker 12 July 2011 в 12:25
поделиться