Re[23]: Visual C# vs C++. Надо сравнить перспективы.
От: alex_public  
Дата: 10.01.17 07:56
Оценка:
Здравствуйте, Слава, Вы писали:

_>>А, у тебя линух, понятно. Ну замени там первый second.join(); на какой-нибудь банальный this_thread::sleep_for(1s); и всё заработает.

С>Или не заработает, если нагрузка в момент запуска будет высокой.

Заработает, т.к. данная строчка исключительно для демонстрации корректности работы теста. А так всё спокойно работает и вообще без неё.

_>> Это не имеет отношения к обсуждаемому нами вопросу, а связано с ожиданием завершения потока из двух других в pthread. В общем это тема отдельной дискуссии на тему синхронизации, можем тоже обсудить, если захочешь, но к вопросу передачи "локального" объекта между потоками это никакого отношения не имеет. )

С>Имеет-имеет. Охренительная просто кроссплатформенность, банальный join не работает. Причём, я уверен что если вызвать какой-нибудь аналог WaitForSingleObject(threadHandle) из libc, то всё работать будет.

Как раз наоборот: http://stackoverflow.com/questions/32660041/why-one-cant-do-multiple-pthread-joins-on-the-same-thread — они просто взяли кривое поведение системных потоков.

Но я согласен, что это недоработка в libstdc++, потому что если глянуть на стандарт C++, то там нет никаких запретов на несколько вызовов join. По идее они должны были как-то обойти кривизну системных потоков, что бы полностью соответствовать стандарту, но... )

Кстати, самое забавное, при компиляции виндовым gcc (в котором сама библиотека по сути такая же, а вот pthread другой) никаких проблем естественно нет. )))

С>ЗЫ: Напиши лучше про язык D, что думаешь.


С ним всё неоднозначно. Ещё лет 5 назад было всё очевидно — идеальный язык для замены C++. В нём было всё имеющиеся в C++ (причём без врождённых уродств) и плюс ещё горы вкусностей. Правда языком было проблематично пользоваться из-за отсутствия нужных библиотек, инструментов и т.п. Но это очевидно должно было решиться со временем, так что я был в ожидание этого момента. ))) Но с тех пор ситуация несколько изменилась. Да, у D существенно добавилось библиотек и инструментов (хотя с необъятной инфраструктуры C++ естественно по прежнему не сравниться), но при этом старичок C++ неожиданно не только втянул в себя значительно количество возможностей из D, но и обзавёлся некоторыми очень интересными своими. Поэтому переход на D с C++ уже перестал выглядеть как вопрос времени и наоборот стал вызывать большие вопросы. Но язык в любом случае очень приятный и я бы перетащил в C++ ещё значительную часть его возможностей (в основном из области метапрограммирования).
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.