Получите каждый символ в строке с помощью VBScript

Они НЕ то же самое. Они используются в различных целях!
, В то время как оба типа семафоров имеют полное/пустое состояние и используют тот же API, их использование очень отличается.

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

Взаимоисключающий семафор А "принадлежит" задаче, которая берет его. Если Задача B будет делать попытку к semGive взаимного исключения, в настоящее время сохраненного Задачей A, то вызов B Задачи возвратит ошибку и сбой.

Взаимные исключения всегда используют следующую последовательность:

  - SemTake
  - Critical Section
  - SemGive

Вот простой пример:

  Thread A                     Thread B
   Take Mutex
     access data
     ...                        Take Mutex  <== Will block
     ...
   Give Mutex                     access data  <== Unblocks
                                  ...
                                Give Mutex

Двоичный Семафор
Двоичный Семафор обращаются к полностью различному вопросу:

  • Задача B ожидается, ожидая, что что-то произойдет (датчик, смещаемый, например).
  • Прохождения Датчика и Процедура обработки прерывания работает. Это должно уведомить задачу прохождения.
  • Задача B должна выполнить и принять соответствующие меры для прохождения датчика. Тогда вернитесь к ожиданию.

   Task A                      Task B
   ...                         Take BinSemaphore   <== wait for something
   Do Something Noteworthy
   Give BinSemaphore           do something    <== unblocks

Примечание, что с двоичным семафором, для B нормально брать семафор и для предоставления его.
Снова, двоичный семафор НЕ защищает ресурс от доступа. Действие Предоставления и Взятия семафора существенно разъединяется.
Это обычно имеет мало смысла для той же задачи к так даванию и взятию на том же двоичном семафоре.

8
задан Cheran Shunmugavel 16 August 2012 в 16:40
поделиться

2 ответа

strString = "test"
For i=1 To Len(strString)
    WScript.Echo Mid(strString,i,1)
Next 
27
ответ дан 3 November 2019 в 13:10
поделиться

AFAIK, Mid - единственный способ сделать это.

3
ответ дан 3 November 2019 в 13:10
поделиться
Другие вопросы по тегам:

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