История изменений
Исправление Dark_SavanT, (текущая версия) :
При многопоточности происходит довольно простое - ты не можешь сделать move переменной между потоками, без дополнительного телодвижения, которое будет удовлетворять условию «реализован трейт Send», реализация которого означает «тут знают что делают».
Например можно в Mutex завернуть, можно в Cow и т.п. А компилятор, за счёт очень активного использования системы типов это всё может разрулить статически при компиляции.
Это если совсем поверхностно, там в глубине неочевидные нюансы начинаются, которые надо учитывать. Но концептуально примерно так, но может лучше объяснит кто.
чуть подробнее тут https://doc.rust-lang.org/nomicon/send-and-sync.html
Исходная версия Dark_SavanT, :
При многопоточности происходит довольно простое - ты не можешь сделать move переменной между потоками, без дополнительного телодвижения, которое будет удовлетворять условию «реализован трейт Send», реализация которого означает «тут знают что делают».
Например можно в Mutex завернуть, можно в Cow и т.п. А компилятор, за счёт очень активного использования системы типов это всё может разрулить статически при компиляции.
Это если совсем поверхностно, там в глубине неочевидные нюансы начинаются, которые надо учитывать. Но концептуально примерно так, но может лучше объяснит кто.