Я бы использовал analyze-string
, в XSLT 3 вы можете вызвать его как функцию XPath и просто обработать XML fn:match
элементы, которые возвращает функция:
полный пример
[111 ]
В XSLT 2 вы можете использовать вместо этого xsl:analyze-string
, а затем использовать xsl:matching-substring
для вывода элемента VALUE
:
You will have to look very hard to find a platform that supports threads but doesn't have a thread safe new
. In fact, the thread safety of new
(and malloc
) is one of the reasons it's so slow.
If you want a thread safe STL on the other hand, you may consider Intel TBB which has thread aware containers (although not all operations on them are thread safe).
Пока я говорю Что касается концепций, которые я не использовал, я чувствую, что должен упомянуть, что если вы используете разделяемую память, вы, вероятно, захотите убедиться, что вы используете только типы POD, и использовать новое размещение.
Во-вторых, если вы используете разделяемая память, как это обычно понимается в системах Linux, тогда вы можете использовать несколько процессов - не потоков, чтобы распределять память и «делать вещи» - используя разделяемую память в качестве уровня связи. Если это так, то безопасность потоков вашего приложения и библиотек не важна, однако важна безопасность потоков всего, что использует распределение общей памяти!
Как правило, оператор new
является поточно-ориентированным, однако гарантии безопасности потоков для вызовов в STL и стандартную библиотеку регулируются стандартом - это не означает, что они потоки не знают - они, как правило, имеют четко определенные гарантии безопасности потоков для определенных операций. Например, перебор списка в режиме «только для чтения» является потокобезопасным для нескольких читателей, а перебор списка и внесение обновлений - нет. Вы должны прочитать документацию и посмотреть, каковы различные гарантии, хотя они не такие обременительные и имеют смысл.
Ну, это не окончательный ответ на мой вопрос, просто что я узнал, что Google реализовал высокопроизводительный многопоточный malloc .
Так что, если вы сомневаетесь, является ли ваша реализация потокобезопасной, возможно, вам следует использовать Google Инструменты производительности .