По сути, многие вещи могут пойти не так в многопоточной среде (переупорядочивание инструкций, частично построенные объекты, одна и та же переменная, имеющая разные значения в разных потоках из-за кэширования на уровне ЦП и т. Д.).
Мне нравится определение, данное в Java Concurrency in Practice :
[Часть кода] является поточно-ориентированной, если она ведет себя правильно при доступе из нескольких потоков, независимо от того, планирования или чередования выполнения этих потоков средой выполнения и без дополнительной синхронизации или другой координации со стороны вызывающего кода.
Под правильно они подразумевают, что программа ведет себя в соответствии со своими спецификациями.
Придуманный пример
Представьте, что вы реализуете счетчик. Вы могли бы сказать, что он ведет себя правильно, если:
counter.next()
никогда не возвращает значение, которое уже было возвращено ранее (для простоты мы не предполагаем переполнения и т. Д.) Счетчик потока безопасности будет вести себя в соответствии с этими правилами независимо от того, сколько потоков обращается к нему одновременно (что обычно не будет случай наивной реализации).
Примечание: кросс-пост на программистов
Поскольку это электронное письмо в формате HTML, вы можете легко вставьте любой стиль, который хотите, в фактическое тело HTML. Я подозреваю, что это то, что делает Outlook, когда вы создаете сообщение из графического интерфейса Outlook.
На самом деле я не знаю, как получить пользовательские настройки. Я просмотрел Outlook API (это странный зверь), но не нашел ничего, что могло бы предоставить доступ к свойствам сообщения по умолчанию.