понимание Блокирующий справку?

Поскольку разработчики компилятора пробуют, добавляет оптимизация для вещей, которые имеют значение (я надеюсь), и которые измеряются в *сравнительные тесты Stone (я боюсь).

существует огромное количество других возможных фрагментов кода как Ваши, которые ничего не делают и могли быть оптимизированы с увеличивающимся усилием на разработчике компилятора, но с которыми почти никогда не встречаются.

то, Что я чувствую себя смущающим, - то, что даже сегодня большинство компиляторов генерирует код для проверки на switchValue быть больше, чем 255 для плотного или почти полного переключателя на неподписанном символе. Это добавляет 2 инструкции к большей части внутреннего цикла интерпретатора байт-кода.

5
задан BlackTea 1 October 2009 в 03:38
поделиться

2 ответа

Прочтите документацию по всем этим вещам:

1)

Application.Lock() and Application.Unlock()

Метод Lock блокирует других клиентов от изменения переменных, хранящихся в объект приложения цитата

2) Вы не можете этого сделать:

public class MyClass
{
   lock
   {
     // DO COOL CODE STUFF.
   }
}

3) ReaderWriterLockSlim следует использовать, если вы можете иметь несколько клиентов, читающих одновременно, но доступ для записи должен иметь монопольный доступ.

4 ) Этот код:

public static object lockObject = new object();
public class MyClass
{    
    lock(lockObject) 
    {
      // DO COOL CODE STUFF. 
    }
}

будет означать, что только 1 поток может находиться в этом блоке одновременно. Значение сериализованного доступа для чтения.

2
ответ дан 15 December 2019 в 06:30
поделиться

Блокировка отдельного объекта не очень хорошо масштабируется. В качестве альтернативы я бы предложил рассмотреть шаблон проектирования Object Pool . Он имеет гораздо больше возможностей для роста для удовлетворения растущих потребностей пользователей.

1
ответ дан 15 December 2019 в 06:30
поделиться
Другие вопросы по тегам:

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