Panzerschrek[CN]
> Ты файлы руками закрываешь?
AutoCloseable уже сто лет.
> Для мьютексов lock/unlock руками дёргаешь?
Последний раз я использовал что-то похожее на мьютекс когда мне надо было убедиться, что дочерний процесс стартовал и можно начинать с ним работать. Непонятно как тут может помочь какой-нибудь RAII. Это я к тому, что использование мьютектов или семафоров чаще всего подразумевает именно ручную работу с ними, иначе получается говнокод, в котором ты не знаешь кто и чем у тебя владеет. Но вообще мьютексы в 2k19-м это уже признак говнокода. А в Java ещё с самых первых версий есть synchronized.
Great V.
> Если бы в JS/Java/C# был еще и RAII - цены бы этим языкам не было.
В мире Java есть CDI, контейнер управляет жизненным циклом объектов, в том числе можно управлять ресурсами с помощью методов помеченных аннотациями @PostConstruct и @PreDestroy.
graphIT
> помеченных аннотациями @PostConstruct и @PreDestroy.
)))
Zefick
> Это я к тому, что использование мьютектов или семафоров чаще всего
> подразумевает именно ручную работу с ними, иначе получается говнокод, в котором
> ты не знаешь кто и чем у тебя владеет.
Не шаришь, просто
std::mutex mut; ... void foo() { ... ... { std::lock_guard<std::mutex> guard( mut); //автоматически залочилось if ( wtf) return; //автоматически разлочилось } //автоматически разлочилось ... } void bar( ) { std::lock_guard<std::mutex> guard( mut); //автоматически залочилось ... ... } //автоматически разлочилось
0iStalker
> Не шаришь, просто
> std::lock_guard<std::mutex> guard(mut);
Поздравляю, кто-то изобрёл ручной synchronized. Только в Java он с 96-го года, а в крестах с 2011-го.
Zefick
> а в крестах с 2011-го.
Средствами языка так можно было делать даже в Turbo C++ 3.0 в 1991 году, правда никому под DOS'ом оно не нужно было.
Java сказала что у нее обновилась лицензия и попыталась обновиться. При установке процесс инсталлятора повис. Да, это конец..
Тема в архиве.