Уведомления

Группа в Telegram: @pythonsu

#1 Ноя. 26, 2015 20:23:35

Igorsk
Зарегистрирован: 2015-10-30
Сообщения: 43
Репутация: +  0  -
Профиль   Отправить e-mail  

Многозадачность

Всем привет! подскажите пожалуйста как сделать многозадачность или как правильно сказать …
ну что бы одновременно делала несколько задач …
что нашел в интернете - “Параллельная многозадачность
threading - встроенный в python модуль для реализации многозадачности с помощью тредов (объекты языка, выполняющиеся в одном процессе). Минусы подхода в том, что вы не можете загрузить вычислениями более одного ядра.
multiprocessing - встроенный в python модуль для реализации многозадачности с помощью процессов
celery - навороченная реализация очереди задач, поддерживающая различные бэкенды для хранения этой самой очереди задач.
RQ - легковесная очередь задач, использующая redis”
полистав нихера не понял …(((
может у кого - нибудь имеется хотя бы приблизительный примерчиу…

Офлайн

#2 Ноя. 26, 2015 21:16:17

alexsis
Зарегистрирован: 2013-07-26
Сообщения: 148
Репутация: +  9  -
Профиль   Отправить e-mail  

Многозадачность

Марк Лутц. Программирование на Python, кажется в первом томе написано про многозадачность.

Офлайн

#3 Ноя. 26, 2015 21:45:26

Igorsk
Зарегистрирован: 2015-10-30
Сообщения: 43
Репутация: +  0  -
Профиль   Отправить e-mail  

Многозадачность

alexsis
кажется в первом томе написано про многозадачность.
ща посмотрю, спасибо!

Офлайн

#4 Ноя. 26, 2015 23:33:26

Budulianin
От:
Зарегистрирован: 2011-10-18
Сообщения: 1218
Репутация: +  33  -
Профиль   Отправить e-mail  

Многозадачность

alexsis
Марк Лутц. Программирование на Python, кажется в первом томе написано про многозадачность.

Там теория для джунов написана.

Igorsk
Всем привет! подскажите пожалуйста как сделать многозадачность или как правильно сказать …

Задачу свою опиши.



Офлайн

#5 Ноя. 27, 2015 03:03:41

Iskatel
Зарегистрирован: 2015-07-29
Сообщения: 291
Репутация: +  3  -
Профиль   Отправить e-mail  

Многозадачность

Igorsk
Кури threading, тебе за глаза хватит, остальное потом, если захочешь…

Офлайн

#6 Ноя. 27, 2015 04:23:54

JOHN_16
От: Россия, Петропавловск-Камчатск
Зарегистрирован: 2010-03-22
Сообщения: 3292
Репутация: +  221  -
Профиль   Отправить e-mail  

Многозадачность

Iskatel
Кури threading, тебе за глаза хватит, остальное потом, если захочешь…
как вы такое можете говорить не зная его задач? Если у него CPU нагруженные задачи, то с ним еще медленнее будет.



_________________________________________________________________________________
полезный блог о python john16blog.blogspot.com

Офлайн

#7 Ноя. 30, 2015 12:15:02

Igorsk
Зарегистрирован: 2015-10-30
Сообщения: 43
Репутация: +  0  -
Профиль   Отправить e-mail  

Многозадачность

Budulianin
мне нужно что бы одновременно работало запись видео -

[code python]import cv2

# find the webcam
capture = cv2.VideoCapture(0)

# video recorder
fourcc = cv2.VideoWriter_fourcc(*'XVID')
out = cv2.VideoWriter('output.avi',fourcc, 20.0, (640,480))

# record video
while (capture.isOpened()):
ret, frame = capture.read()
if ret:
out.write(frame)

cv2.imshow('Video Stream', frame)

if cv2.waitKey(1) & 0xFF == ord('q'):
break
else:
break


capture.release()
video_writer.release()
cv2.destroyAllWindows()
[/code]

и запись звука -
import pyaudio
import wave
CHUNK = 1024
FORMAT = pyaudio.paInt16
CHANNELS = 2
RATE = 44100
RECORD_SECONDS = 5
WAVE_OUTPUT_FILENAME = "output.wav"
p = pyaudio.PyAudio()
stream = p.open(format=FORMAT,
                channels=CHANNELS,
                rate=RATE,
                input=True,
                frames_per_buffer=CHUNK)
print("* recording")
frames = []
for i in range(0, int(RATE / CHUNK * RECORD_SECONDS)):
    data = stream.read(CHUNK)
    frames.append(data)
print("* done recording")
stream.stop_stream()
stream.close()
p.terminate()
wf = wave.open(WAVE_OUTPUT_FILENAME, 'wb')
wf.setnchannels(CHANNELS)
wf.setsampwidth(p.get_sample_size(FORMAT))
wf.setframerate(RATE)
wf.writeframes(b''.join(frames))
wf.close()

примерно так ….

Офлайн

#8 Ноя. 30, 2015 13:15:29

JOHN_16
От: Россия, Петропавловск-Камчатск
Зарегистрирован: 2010-03-22
Сообщения: 3292
Репутация: +  221  -
Профиль   Отправить e-mail  

Многозадачность

Для начала попробуйте модуль threading, может его хватит - задача сделать два дополнительный потока в котором будет выполняться соответствующие функции. Примеров в интернете навалом, есть офиц.документация, есть книга Бизли “Python Подробный справочник”, где частично тоже самое но на русском. Если надо - разберетесь.



_________________________________________________________________________________
полезный блог о python john16blog.blogspot.com

Офлайн

#9 Ноя. 30, 2015 17:49:08

Igorsk
Зарегистрирован: 2015-10-30
Сообщения: 43
Репутация: +  0  -
Профиль   Отправить e-mail  

Многозадачность

JOHN_16
Понял, большое спасибо!

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version