Мне нужно именно сам поток обработки запроса останавливать. Т.е. тот, который получается при подключении клиента и отправки его обработки в ExecutorService. Если он (не зависимо какие идут действия занимает слижком много времени - то просто забить на клиента и освободить поток)
Эм, вы пытаетесь достучатся до сокета-сервера, у которого тайм-аут на прием соединений - зачем? Мне нужно, чтобы сервер, получив клиента создал ему поток, а этот поток по истечению N-ого кол-ва миллисекунд/секунд завершил свое выполнение по таймауту. У вас-же таймаут тоит не там, сервер после таймаута просто не может принять клиентов.
ServerSocket Listener = new ServerSocket(CONNECTION_PORT);
Сейчас потестил, поставил на сокет (который клиента) таймаут в 1 мс (Socket.setSoTimeout(1);) - никаких ошибок, хотя среднее время на выполнение тестовых запросов (все одинаковые) ~305 мс..
Что не так?
Таймаут соединения не катит, поток-то не очистится. Мне нужно именно под каждого клиента свой поток и каждому потоку таймаут выполнения, после которого поток останавливается и очищается (будет супер, если еще и соединение с клиентом закроется).
Это я уже видел. Опять меня не поняли. После вызова marshal.loads(строка) у меня появляется какой-то объект с названием code, который отправляется в exec. Мне нужно получить его исходный код (текстом), а как не знаю (при попытке "в лоб" (записать в файл его/вывести через print) выдает ошибку.
@mixtape774 если все изменяемые объекты были созданы в одном потоке, то никаких проблем не будет. Например, если все объекты создавались вместе с формой (в одном потоке), то можно вызвать просто this.Invoke(....)