Прочитал я в последнем Рихтере главу про трединг, но как-то в одно ухо влетело, а в другое вылетело. Что бы такого написать, чтобы пришлось использовать все эти хитров... конструкции и понять, как оно на самом деле работает?
Здравствуйте, Synapse, Вы писали:
S> Что бы такого написать, чтобы пришлось использовать все эти хитров... конструкции и понять, как оно на самом деле работает?
Ну классика для закрепления (надеюсь не слишком элементарно ):
1. Очередь — несколько потоков добавляют данные, несколько извлекают и обрабатывают.
2. Кэш — один поток изредка обновляет данные, множество потоков очень часто читают. операцию чтения можно сделать специально довольно длительной. смысл в том чтобы читающие потока не блокировали друг друга.
3. Асинхронные операции с отзывчивым интерфейсом приложения — посчитать хэши больших файлов в сети по url, считать параллельно, разрешить добавление/удаление url во время работы. Разрешить задавать группы файлов и считать хэш для группы (+ добавление/изменение/удаление групп во время работы).
4. TCP туннель — перенаправлять трафик с заданного локального порта (80) на удаленный (rsdn.ru:80) и обратно (проверять можно браузером). Позволить задавать таймаут неактивного соединения, выводить какую-нибудь статистику по кол-ву соединений, скорости передачи данных и т.п.
Можно реализовать все на основе элементарных примитивов синхронизации, а потом подобрать более высокоуровневые средства из стандартной библиотеки/Рихтера и сравнить скорость/удобство/расширяемость.
Re[2]: Что написать, чтобы освоить .NET threading?
Здравствуйте, Аноним, Вы писали: А>4. TCP туннель — перенаправлять трафик с заданного локального порта (80) на удаленный (rsdn.ru:80) и обратно (проверять можно браузером). Позволить задавать таймаут неактивного соединения, выводить какую-нибудь статистику по кол-ву соединений, скорости передачи данных и т.п.
А>Можно реализовать все на основе элементарных примитивов синхронизации, а потом подобрать более высокоуровневые средства из стандартной библиотеки/Рихтера и сравнить скорость/удобство/расширяемость.
Я как раз думал что-нибудь насчет прокси/веб-сервера. Другое дело, что хреновый веб-сервер написать ничего не стоит, надо какую-то метрику иметь.
Re[3]: Что написать, чтобы освоить .NET threading?
Здравствуйте, Synapse, Вы писали:
S>Я как раз думал что-нибудь насчет прокси/веб-сервера. Другое дело, что хреновый веб-сервер написать ничего не стоит, надо какую-то метрику иметь.
Может не в тему, но как раз многопоточные прокси/веб-сервера и получаются хреновыми.
- Eugeny
Re[4]: Что написать, чтобы освоить .NET threading?
Здравствуйте, Murom, Вы писали:
M>Здравствуйте, Synapse, Вы писали:
S>>Я как раз думал что-нибудь насчет прокси/веб-сервера. Другое дело, что хреновый веб-сервер написать ничего не стоит, надо какую-то метрику иметь.
M>Может не в тему, но как раз многопоточные прокси/веб-сервера и получаются хреновыми.
В первом сообщении ТС вроде сказал, что ему для саморазвития хочется потренироваться, а не коммерческий продукт выпустить.
Здравствуйте, Synapse, Вы писали:
S>Прочитал я в последнем Рихтере главу про трединг, но как-то в одно ухо влетело, а в другое вылетело. Что бы такого написать, чтобы пришлось использовать все эти хитров... конструкции и понять, как оно на самом деле работает?
Напиши книгу.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.