Python: как запустить input() параллельно с print()?
input() в python полностью стопит весь код до тех пор, пока пользователь не введет данные. Можно ли как-то запустить input() параллельно вместе с print()? Пишу программу чата между двумя устройствами в локальной сети и нужно, чтобы пользователь мог одновременно читать сообщения (print()) и в любой момент отправлять свои так, чтобы программа не замораживалась пока он вводит данные.
На данный момент ввод реализован в отдельном окне :(
Ответы (2 шт):
Python поддерживает различные формы конкурентности (asyncio,threading,multiprocessing): https://habr.com/ru/post/421625/
С asyncio и threading память "потоков" общая, как вам видимо и надо.
Различия в синтаксисе и в соотношении с потоками ОС.
То что вы описали происходит из-за GIL.
Global Interpreter Lock (GIL) — это способ синхронизации потоков, который используется в некоторых интерпретируемых языках программирования, например в Python и Ruby.
Для реализации чата стоит взять socket. Вопрос по реализации простого чата в английской версии StackOverflow.
В этом случае необходимо создать сервер и отдельный клиент, таким образом через sockets в локальной сети вы сможете передавать и получать информацию на всех клиентах одновременно.