Язык Java и вопрос: наличие какого-либо приложения, прослушивающего порт, и это приложение многопоточно, с потоками, содержащимися в наборе ThreadLocals Set.Can I, открывая сокет для потоковой передачи и передачи файла, может Я открываю сокет и доставляю его в конкретный поток? Приложение уже передает определенные сериализуемые объекты X-интерфейса между сокетами.Socket Stream writing
ответ
Я согласен с Питером. Но если вы отступите назад, подтвердите свой дизайн и решите, что вам действительно нужно это, я думаю, вы можете сделать это следующим образом.
Вы должны добавить к вашему протоколу какие-либо указания по резьбе. Предположим, что вы вызываете свои потоки 1, 2, 3 и т. Д. Таким образом, каждая команда, отправляемая с клиента, должна содержать идентификатор потока, к которому он предназначен. Слушающий поток должен извлечь это значение и отправить задачу в конкретный поток. Я понятия не имею, можете ли вы это сделать, используя существующие пулы потоков, которые вам нужны сами. Но не беспокойтесь: если ваш пул потоков прост (т. Е. Не меняет число потоков динамически и т. Д.), Это всего лишь 10 строк кода, чтобы написать собственный пул потоков: создать список потоков List<Thread>
и написать цикл, который заполняет его: threads.add(new Thread())
.
Каждый поток должен ждать в собственной очереди Runnable
s. Когда новая задача поступает в Thread #n, просто создайте runnable и поместите ее в соответствующую очередь.
Самый простой способ иметь рабочий поток, чтобы использовать ExecutorService, который однопоточный (или пул, если вы хотите), то вы можете дать ему задачи с
ExecutorService executor = Executors.newSingleThreadExecutor();
executor.execute(new Runnable() { ... });
executor.shutdown();
Не знаю, почему вы бы держать Темы в переменных ThreadLocal. Возможно, пришло время сделать шаг назад от вашего дизайна и спросить себя, можете ли вы сделать это проще.
Почему все не любят ThreadLocals Java? – hephestos 2010-12-08 07:58:25
- 1. Node.js req.body socket writing
- 2. Android Socket Stream
- 3. get socket from Stream
- 4. writing boost :: archive to C# stream
- 5. Socket stream не удалось сбросить
- 6. boost asio ssl stream socket компиляция проблема
- 7. C# Socket Stream с использованием протокола Tcp
- 8. Java socket programming - stream get stuck
- 9. Read-line from socket-stream in lisp
- 10. отправка файла через tcp stream socket в c для windows
- 11. Java Sockets writing/reading
- 12. java socket/output stream пишет: блокируют ли они?
- 13. Подключение myo к окну телефона 8.1 Stream Socket
- 14. C#, Metro, Stream Socket, SSL Untrusted Host, Squid
- 15. Windows 8 xml file writing
- 16. writing hessian serivce
- 17. C - struct problems - writing
- 18. Python simple ini writing
- 19. Искусственный интеллект - Creative Writing
- 20. Python Writing Квадратичная формула
- 21. SQL Query Report Writing
- 22. Java Image Writing
- 23. xlsx writing - где указано?
- 24. MPI, NFS File Writing
- 25. Python - writing print
- 26. Open excel for writing
- 27. NLog file not writing
- 28. scrapy CSV writing
- 29. php: writing files
- 30. File.Open Cross Thread Writing
просто хотел добавить возрасты после этого, что из-за этой идеи я сделал тогда таблицу, где я отслеживал связь потоков между клиентом/сервером. – hephestos 2013-02-04 15:22:04