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

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

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

Задачу свою опиши.
Iskatel
Igorsk
Кури threading, тебе за глаза хватит, остальное потом, если захочешь…
JOHN_16
Iskatel
Кури threading, тебе за глаза хватит, остальное потом, если захочешь…
как вы такое можете говорить не зная его задач? Если у него CPU нагруженные задачи, то с ним еще медленнее будет.
Igorsk
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()

примерно так ….
JOHN_16
Для начала попробуйте модуль threading, может его хватит - задача сделать два дополнительный потока в котором будет выполняться соответствующие функции. Примеров в интернете навалом, есть офиц.документация, есть книга Бизли “Python Подробный справочник”, где частично тоже самое но на русском. Если надо - разберетесь.
Igorsk
JOHN_16
Понял, большое спасибо!
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB