&T отличается от Arc<T> только тем что не даёт thread-safety

и полное владение?

7 ответов

8 просмотров

& - просто ссылка Arc - в простонародии счетчик ссылок & естественно значением не владеет, а только ссылается на него, просто копируется Arc хранит в себе значение, мувится, клонится. при клонировании счетчик +1, при удалении счетчик -1 & не изменчив, бери &mut Arc изменчив если счетчик =1

Thread safety тут ортогонально. Главное — то, что Arc сам по себе не даёт времени жизни. Ну и оверхед имеет на безусловную аллокацию и атомарный подсчёт ссылок

Nickolai Burtsev 👀- Автор вопроса
Антон 🇦🇲
Thread safety тут ортогонально. Главное — то, что ...

Что-то не совсем понял, читать &T с разных поток безопасно?

Nickolai Burtsev 👀- Автор вопроса
Антон 🇦🇲
Да, если T реализует Sync

Хорошо, тогда вопрос, у меня есть неизменяемое состояние типа T, где T: Sync, Как мне лучше его передавать потокам, Arc<T> или &T (владение не требуется)?

Nickolai Burtsev 👀
Хорошо, тогда вопрос, у меня есть неизменяемое сос...

У потоков нет проблем с приёмом ссылок, которые Send, но в стд они требуют 'static лайфтайм в связи с апи JoinHandle, которое не гарантирует ожидание выполнения. Если нужны ссылки в безопасном коде в многопотоке, используй crossbeam scoped threads (или подожди 3 месяца, пока их добавят в стейбл)

Nickolai Burtsev 👀
Хорошо, тогда вопрос, у меня есть неизменяемое сос...

Через Arc, меньше головняка будет. Но если у тебя все потоки завершаются раньше, чем тот, из которого они порождены, то имеет смысл использовать scoped threads из crossbeam

Похожие вопросы

Обсуждают сегодня

Всем привет, может уже кто-то пытался выдернуть из api информацию о дате рождения пользователя Есть ли вообще такая возможность?
Artem Stormageddon
2
а что делать если тебя убивают на картах?
Yarik yarik kyda ti lezesh
43
Подскажите где можно прочитать про реализацию возможности писать человеку при подписке на телеграм канал от имени бота? Было бы не плохо если для Telegraf@3.38.0
Pan Lipton
10
Ребята, я за проф советом😅 По микросервисам. В монолите есть общие файлы для сервисов: фетчи, конфиги, либы, утилсы.. как при распиле правильно их поддерживать? Пока вариант д...
Александр Тарасюк
1
всем привет. я правильно понимаю, что в телеграфе 4, если сессию указать у сообщения с коллбеком (кликнул на кнопку и установил сессию), то она не сохраняется?
Тимур
1
Мне вот что интересно, кто на рфе стартовал/играл, что вы фармили, в каком виде контента он прямо хорош? Экспедиция? Вроде прямо на замазанных мапах рф сдувается
Владислав
20
‌/r/pathofexile moderation changes top scoring links : pathofexile (RSS) Hi, everyone. On behalf of the subreddit mod team, I’m here to give you a few updates on the subreddi...
Esionru
3
У вас бывает ощущение, что хочется потратить весь отпуск на то, чтоб только спать?
Николай
15
У меня вопрос к знающими, стоит ли вступать в гильдии в игре или лучше полная свобода?
Енот Полоскун
17
Кто нибудь поясните это всё таки вброс или да? Про санктум слышал на поедб вбросили, а по дурке откуда инфа и на сколько это вообще правда? Пахнет шизофренией какой-то ✅Divi...
Dmitry Ritter
9
Карта сайта