Многопоточность разбивает программу на многоуровневое выполнение, которое выполняется в течение разного времени. Это возможность управлять использованием более чем одним пользователем одновременно или даже управлять несколькими запросами одного и того же пользователя без необходимости иметь несколько копий программы, запущенной на компьютере.
Преимущества:
- Лучшее общение
- Упрощение структуры программы
- Минимальное использование системных ресурсов
- Превосходная скорость отклика приложений
- Повышенная скорость отклика сервера
Хорошим примером возможностей многопоточности является текстовый процессор. Когда вы печатаете в документе Word, вы можете видеть клавиши, которые вы вводите, на экране по мере их ввода. Если вы ошиблись в написании слова, оно будет подчеркнуто красным. Это один из примеров многопоточности. Компьютер не копирует текстовый документ, который вы печатаете. Он использует те же данные, чтобы видеть нажатия клавиш и информировать пользователя о любых словах с ошибками, используя многопоточность. Представьте, что вам нужно сохранить документ и перейти в другое приложение, чтобы увидеть свои орфографические ошибки, а затем сохранить документ, чтобы добавить графику позже!
Совет профессионала:
Важно избегать одновременного доступа нескольких потоков к одной и той же переменной. На самом деле не имеет значения, есть ли у вас один поток, который перезаписывает переменную, а другие потоки читают переменную. Однако важно избегать перезаписи переменной, которую используют одновременно несколько потоков без каких-либо ограничений.
Например, предположим, что вы создаете два потока, объединенные усилия которых состоят в том, чтобы сложить все числа от одного до миллиона. Допустим, вы делаете одну нить, которая добавляет первую половину, а вторая нить добавляет вторую половину. Если у вас есть общая переменная «a», в которую вы сохраняете числа, некоторые данные могут быть потеряны, если два потока добавляются одновременно. Если вы напишете код так, чтобы только один поток мог добавлять значение в любой момент времени, вместо того, чтобы одна и та же переменная перезаписывала его одновременно, вы будете выполнять операции в том же порядке.
Подписывайтесь на нас в Twitter 🐦 и Facebook 👥 и Instagram 📷 и присоединяйтесь к нашим Facebook и Linkedin Группы 💬 .
Чтобы присоединиться к нашему чату команды Slack в сообществе 🗣️ прочтите наши еженедельные темы о Фавнах 🗞️, и присоединитесь к сообществу 📣 нажмите здесь⬇