MediaWiki API и кодирование

Ответ может зависеть от целевой ОС. Например, по крайней мере одна реализация RTOS, с которой я знаком, позволит, несколько последовательные "получают" операции против единственного взаимного исключения ОС, пока они - все из того же контекста потока. Несколько добираются, должен быть заменен равным количеством, помещает, прежде чем другому потоку позволят получить взаимное исключение. Это отличается от двоичных семафоров, для которого только сингла добираются, позволяется за один раз, независимо от контекстов потока.

идея позади этого типа взаимного исключения состоит в том, что Вы защищаете объект, только позволяя единственному контексту изменить данные за один раз. Даже если поток получает взаимное исключение и затем вызывает функцию, которая далее изменяет объект (и получает/помещает взаимное исключение средства защиты вокруг его собственных операций), операции должны все еще быть безопасными, потому что они все происходят под единственным потоком.

{
    mutexGet();  // Other threads can no longer get the mutex.

    // Make changes to the protected object.
    // ...

    objectModify();  // Also gets/puts the mutex.  Only allowed from this thread context.

    // Make more changes to the protected object.
    // ...

    mutexPut();  // Finally allows other threads to get the mutex.
}

, Конечно, при использовании этой функции, необходимо быть уверены, что все доступы в единственном потоке действительно безопасны!

я не уверен, насколько распространенный этот подход, или применяется ли он за пределами систем, с которыми я знаком. Для примера этого вида взаимного исключения посмотрите ThreadX RTOS.

5
задан Peter Mortensen 12 April 2011 в 19:02
поделиться

2 ответа

Хорошо, изменение заголовка запроса устранило проблему.

postMethod.setRequestHeader( "Content-Type", "application/x-www-form-urlencoded; charset=utf-8");
3
ответ дан 15 December 2019 в 06:32
поделиться

В моем PHP-коде для взаимодействия с Mediawiki API я использовал urlencode для кодирования параметра заголовка, и это, похоже, работает нормально.

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

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