2

Я пытаюсь создать поток, находясь внутри класса, для запуска другого конструктора классов, но похоже, что 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 {} 

ответ

3

Y ou вызывают DB вместо передачи DB в pool.apply_async.

() падения:

async_result = pool.apply_async(DB, args, kwargs) 
+0

вы босс! – sadmicrowave

 Смежные вопросы

  • Нет связанных вопросов^_^