BotaniQ_Q
@BotaniQ_Q

Потоки в python?

На самом деле я никогда не использовал потоки, но если я правильно понимаю, то для решения задачи мне нужны именно они, у меня есть три базы данных sqllite, на вход программы подается текст с вопросом, ответ хранится в одной из баз данных, я хочу что бы все было как можно быстрее, и программа не искала ответ сначала проверяя один файл, потом второй, а проверяла их сразу все, пока не найдет нужный. Базы объединять нельзя, как делаются потоки в python?
  • Вопрос задан
  • 544 просмотра
Пригласить эксперта
Ответы на вопрос 2
Используйте мульти процесс

from multiprocessing import Process


def test(dbname, order):
    connect = get_couchdb_session(dbname=dbname)

for dbname in base_list:
    thread = Process(target=test, args=(dbname, *args))
    thread.start()
Ответ написан
@iSergios
Python-разработчик
Копайте в сторону threading. Для запуска функции в потоке в самом простейшем варианте можно использовать декоратор. Например:
import threading

def thread(func):  # Собственно, декоратор
 def wrapper(*args, **kwargs):
  current_thread = threading.Thread(target=func, args=args, kwargs=kwargs)
  current_thread.start()
 return wrapper
    
@thread  # Оборачиваем
def function():
 '''
 И вот тут код функции, которая всякий раз при вызове 
 будет запускаться в отдельном потоке.
 '''


Но помните главное. При попытке обратиться к sqlite-базе из потока, отличного от того, в котором был создан коннект с ней, она будет ругаться и бросать exception.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы