Каковы Взаимное исключение и семафор В c#? где мы должны реализовать? [закрытый]

Мое понимание - то, что Google не представляет тот URL сервера, и как таковой делает эту технику неоперабельной для Google OpenID.

19
задан Ed Power 13 November 2015 в 19:57
поделиться

3 ответа

Вы должны начать с MSDN.

  • System.Threading.Mutex : примитив синхронизации, который также может использоваться для межпроцессной синхронизации.
  • System.Threading.Semaphore : Ограничивает количество потоков, которые могут одновременно обращаться к ресурсу или пулу ресурсов.

Обычно вы используете Mutex только между процессами, например, если у вас есть ресурс, который должны совместно использовать несколько приложений, или если вы хотите создать единый -инстансированное приложение (т.е. разрешить одновременную работу только 1 копии).

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

31
ответ дан 30 November 2019 в 03:08
поделиться

Я бы начал с чтения этого: http://www.albahari.com/threading/part2.aspx #_Synchronization_Essentials а затем подкрепите его ссылками MSDN, опубликованными bobbymcr.

6
ответ дан 30 November 2019 в 03:08
поделиться

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

class Test {
    private static object Lock = new object();

    public function Synchronized()
    {
        lock(Lock)
        {
            // Only one thread at a time is able to enter this section
        }
    }
}

. Оператор блокировки реализуется путем вызова Monitor.Enter и Monitor.Exit. Это эквивалентно следующему коду:

Monitor.Enter(Lock);    
try
{
    // Only one thread at a time is able to enter this section
}
finally
{
    Monitor.Exit(Lock);
}
6
ответ дан 30 November 2019 в 03:08
поделиться
Другие вопросы по тегам:

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