Как не забыть порядок параметров

Обсуждаются как существующие проекты (перевод документации, информационная система и т.п.), так и создание новых.

Модератор: Модераторы

скалогрыз
долгожитель
Сообщения: 1804
Зарегистрирован: 03.09.2008 02:36:48

Сообщение скалогрыз »

hinst писал(а):что-то вы удалились от первоначального вопроса

Добавлено спустя 7 минут 20 секунд:
который насчёт порядка параметров

как ни крути - что-нить забудешь! держи документацию под рукой :D
Mirage
энтузиаст
Сообщения: 881
Зарегистрирован: 06.05.2005 20:29:07
Откуда: Russia
Контактная информация:

Сообщение Mirage »

скалогрыз писал(а):Я не понял насчёт коментариев №3 и №4
А почему в твоём комментарии 3 ты пишешь "переменной f уже даже присвоена ссылка на объект" и сразу в 4 "Не, не раньше (чем конструктор завершён ). Из того же потока как не смотри, не раньше".


Потому что такова реальность.

скалогрыз писал(а):"не факт что, те значения которые были записаны в потоке 1, доступны потоку 2, т.к. у потока 1 свой кеш и очень может быть, что поток 1 писал в кеш".


Не знаю чего ты привязался к кэшу, но он, как правило, не причем, потому как когерентен на большинстве архитектур (т.е. разные потоки увидят изменения из кэшей друг друга).
Проблему чаще вызывают переменные в регистрах и переупорядочивание выполнения. А также другие возможные оптимизации.

Итак, подытожим.
Имеем два подхода борьбы с неопределенностью межпоточного взаимодействия, каждый с плюсами и минусами:
1. Обобщенные синхронизации типа мониторов, критических секций и т.п.
+ стандартность объектов синхронизации - не уверен, что это плюс, но надо чтоб был плюс
- тяжесть объектов синхронизации - легкие низкоуровневы и не портабельны
2. Легкие синхронизации, встроенные в язык в виде модели памяти
+ простота использования - immutable объекты очень просты в использовании, да и возможность пометить переменную так, что запись в неё видна другим потокам тоже несложная концепция
+ производительность - можно использовать низкоуровневые, процессорозависимые средства
+ возможность использовать стандартные объекты синхронизации никто не отменял
- простота несколько обманчива - чтобы корректно и эффективно использовать такую вещь как volatile, надо хорошо понимать что происходит "под капотом"

hinst писал(а):что-то вы удалились от первоначального вопроса


Там уже нечего обсуждать. Да и не было особо.
скалогрыз
долгожитель
Сообщения: 1804
Зарегистрирован: 03.09.2008 02:36:48

Сообщение скалогрыз »

Mirage писал(а):Не знаю чего ты привязался к кэшу, но он, как правило, не причем, потому как когерентен на большинстве архитектур (т.е. разные потоки увидят изменения из кэшей друг друга).
Проблему чаще вызывают переменные в регистрах и переупорядочивание выполнения. А также другие возможные оптимизации.

потому что не верю в агрессивную оптимизацию.
Ответить