Size: a a a

Rust — русскоговорящее сообществo

2020 October 21

Э

Эрик in Rust — русскоговорящее сообществo
∅ ч
Есть тредпул, только для футурок? Чтобы можно было их запихать миллионами, и выполнялось одновременно только N футурок?
Ну, как бы, экзекутор так и делает, нет?
источник

Э

Эрик in Rust — русскоговорящее сообществo
Пока футурка выполняется, он её выполняет.
источник

V

Vitaly in Rust — русскоговорящее сообществo
∅ ч
Есть тредпул, только для футурок? Чтобы можно было их запихать миллионами, и выполнялось одновременно только N футурок?
запусти N екзекуторов. если конечно футурки не зависят от друг друга
источник

EG

Emmanuel Goldstein in Rust — русскоговорящее сообществo
https://doc.rust-lang.org/std/net/struct.TcpStream.html#method.try_clone
Что произойдёт, если дропнуть один из пары склонированных стримов?
источник

V

Vetro in Rust — русскоговорящее сообществo
Закроется соединение, по логике
источник

EG

Emmanuel Goldstein in Rust — русскоговорящее сообществo
Vetro
Закроется соединение, по логике
И второй будет постоянно возвращать ошибки?
источник

EG

Emmanuel Goldstein in Rust — русскоговорящее сообществo
Возможно, но неприятно
Жаль, что стандартные стримы нельзя сплитнуть, как токийные
источник

∅ч

∅ ч in Rust — русскоговорящее сообществo
Эрик
Ну, как бы, экзекутор так и делает, нет?
нужно ограничить число одновременно запущенных
источник

∅ч

∅ ч in Rust — русскоговорящее сообществo
представь что их там 100 миллионов и это HTPP-req
источник

Э

Эрик in Rust — русскоговорящее сообществo
Так всё равно по тредам делится.
источник

∅ч

∅ ч in Rust — русскоговорящее сообществo
И что?
источник

∅ч

∅ ч in Rust — русскоговорящее сообществo
тут именно нужно сделать им очередь, чтобы свыше 100 не исполняло одновременно, и память не отжирало
источник

∅ч

∅ ч in Rust — русскоговорящее сообществo
не хочу делать это костылем через локи, может есть какой-то более гуманный способ
источник

IB

Ivan Boldyrev in Rust — русскоговорящее сообществo
∅ ч
тут именно нужно сделать им очередь, чтобы свыше 100 не исполняло одновременно, и память не отжирало
Или другой сервер не заддосило.
источник

Э

Эрик in Rust — русскоговорящее сообществo
Ну просто в вектор (или несколько thread-local векторов) их пихай, да и выдавливай оттуда.
источник

∅ч

∅ ч in Rust — русскоговорящее сообществo
Ivan Boldyrev
Или другой сервер не заддосило.
так оно во первых bandwidth сожрет, во вторых ехекутор получит сто миллионов футурок одновременно, что сожрет всю память и прочие ресурсы
источник

∅ч

∅ ч in Rust — русскоговорящее сообществo
Эрик
Ну просто в вектор (или несколько thread-local векторов) их пихай, да и выдавливай оттуда.
ну вот этого я как раз и не хочу
источник

Э

Эрик in Rust — русскоговорящее сообществo
∅ ч
так оно во первых bandwidth сожрет, во вторых ехекутор получит сто миллионов футурок одновременно, что сожрет всю память и прочие ресурсы
Всё равно запихивать в экзекутор будет лучше, чем руками память аллоцировать.
источник

∅ч

∅ ч in Rust — русскоговорящее сообществo
Эрик
Всё равно запихивать в экзекутор будет лучше, чем руками память аллоцировать.
ну речь просто идет про то, чтобы это красиво оформить и не менять архитектуру сильно
источник

Э

Эрик in Rust — русскоговорящее сообществo
Ну или есть вариант футуры из итератора или стрима делать, они ленивые же.
источник