Я пытаюсь создать поток, находясь внутри класса, для запуска другого конструктора классов, но похоже, что pool.apply_async
не передает kwargs, как я ожидал бы этого. Вот мой код (урезано включать только код потокового):Python Проблема многопроцессорности при передаче kwargs
from MyDatabaseScript import DB
class Trinity:
def __init__(self):
#lets split a thread off and work on connecting to the mysql server
pool = ThreadPool(processes=1) #establish the thread pool
#I want to pass 'self' as an arg to DB because the Trinity instance has class variables that I want to use
args, kwargs = (self,), {"host":"my.server.name", "user": "databaseuser", "passwd": "xxxxxxxxxxx", "db": "database name"}
async_result = pool.apply_async(DB(), args, kwargs) #create the thread pool call for the DB class with the kwargs
Теперь, когда все работает отлично, и я не получаю никаких ошибок, но на DB() на стороне моего кода выглядит просто и это :
import MySQLdb
class DB:
def __init__(self, tms=None, **kwargs):
print tms, kwargs
проблема в том, что команда на печать в функции __init__
ничего не печатает, я получаю это:
None {}
вы босс! – sadmicrowave