2 прочтения · 2 года назад
​​Thread Safe — когда пора начать об этом думать Понятие Thread Safe имеет множество определений, но суть у них одна: если переменную изменяют несколько потоков, то результат изменения должен быть предсказуемый (если b = 1, и мы дважды вызываем b++, то ожидаем увидеть b = 3 — это и есть предсказуемость) Что может пойти не так? Во-первых, по умолчанию потоки работают с переменной не в общей памяти, а создают свою локальную копию. А после всех манипуляций с объектом внутри потока возвращают объект в общую память То есть другие потоки смогут увидеть изменения в объекте только после завершения этапа работы первого потока Во-вторых, один поток может взять переменную и начать изменять ее. Например, была строка var s = "Big", а на выходе должна получится строка s = s + "Hot" Но пока первый поток не закончил изменение s, второй поток тоже считал s. И решил сделать из нее s = s + "Dog" Получается, что мы хотели прибавить к "Big" строки "Hot" и "Dog", а получим на выходе не "BigHotDog", а "BigHot" или "BigDog" или "BigDogHot" — результат непредсказуем Ответ на заголовок поста: пора начинать разбираться в многопоточности, как только в проекте появляется два и более потоков, работающих с общими переменными .... с чего стоит начать, если хочешь понять эту вашу многопоточность вдоль и поперек?
06:44
1,0×
00:00/06:44
20,7K просмотров · 3 года назад
67 прочтений · 9 месяцев назад
Установка PHP 8.1 на IIS 10
Сегодня мы будем с вам устанавливать PHP 8.1 на Windows Server 2016 для web-сервера IIS 10. Начиная с этой версии PHP установка сильно усложнилась. Microsoft Web Platform Installer (WebPI), которым раньше я пользовался для установки PHP больше не работает, так что устанавливать приходится вручную. Возня с дополнительными расширениями тоже приключение. Очень печально, что для Windows Server 2016 нет нормальных способов установки. Дистрибутив PHP 8.1 https://www.php.net/downloads Переходим на официальный сайт PHP в раздел загрузок, находим PHP 8...