Форум сайта python.su
0
Здравствуйте!
Хочу попробовать поработать с процессами при помощи модуля Multiprocessing.
Есть такой скрипт:
from multiprocessing import Process from time import sleep def f1(): sleep(5) print('Done!') p=Process(target=f1,args=()) p.start() sleep(2) print('Hello, world!') p.join()
Офлайн
16
Попробуйте-ка так:
from multiprocessing import Process from time import sleep def f1(): sleep(5) print('Done!') def main(): p=Process(target=f1,args=()) p.start() sleep(2) print('Hello, world!') p.join() if __name__ == '__main__': main()
Отредактировано GaiveR (Фев. 17, 2013 21:24:10)
Офлайн
0
GaiveRДа, процессы не плодятся :), в результате получаю
Попробуйте-ка так:
>>> Hello, world! >>>
fp1 = file_processor.file_processor() fp1.process(path)
fp1 = file_processor.file_processor() p=Process(target=pp,args=(fp1,path_temp_replace+file_name,)) p.start() EOFError Exception AttributeError: "'Cursor' object has no attribute 'connection'" in <bound method Cursor.__del__ of <MySQLdb.cursors.Cursor object at 0x00BF6410>> ignored
Отредактировано kt368 (Фев. 18, 2013 00:20:01)
Офлайн
16
kt368Иногда полезно читать документацию (“Safe importing of main module”) :)
А почему так заработало, а по-старому не работало?
kt368У меня выводится.
И почему не выводится ‘Done!’?
kt368Покажите больше кода
Вообщем, прикручиваю этот Multiprocessing, теперь такое непонятно:
Офлайн
0
Разобрался! Вышеприведённая ошибка происходила из-за того, что я в одном процессе (в основном) коннектился к базе данных, а в дочернем - пытался что-то выполнить в этой базе. Т.е. в основном было
self.con = MySQLdb.connect(host="localhost", user="root", passwd="251088", db="mca", charset='utf8') self.cur = self.con.cursor()
exec_str = 'INSERT INTO ...;' self.cur.execute(exec_str)
Офлайн