Page 88 - 6734
P. 88
19]. Клас Manager створює об’єкт, що контролює серверний
процес, який зберігає об’єкти Python і дозволяє іншим процесам
використовувати їх. Використання об’єктів Manager більш гнучке,
ніж об’єктів спільної пам’яті, так як вони можуть підтримувати
об’єкти довільних типів. Але вони більш повільні. У прикладі за
допомогою Manager створюється список, у який базовий і дочірній
процес паралельно додають елементи.
from multiprocessing import Process, Manager
def f(L): # функція, що виконується в окремому
процесі
L.append(4)
if __name__ == '__main__':
manager = Manager() # менеджер
L = manager.list([1,2]) # спільний для процесів
список
p = Process(target=f, args=(L, )) # новий процес
p.start() # стартувати процес (робота з L
розпаралелюється)
L.append(3)
p.join() # приєднати процес
print L
[1, 2, 3, 4]
socket – низькорівневий мережевий інтерфейс
server.py – модуль сервера
Модуль socket забезпечує доступ до API сокетів BSD [5, 19,
56]. Доступний для багатьох сучасних ОС. Найчастіше
використовуються такі функції як socket (створити кінцеву точку
з’єднання), bind (присвоїти сокету адресу), listen (режим
очікування вхідних повідомлень), accept (прийняти з’єднання),
connect (установлює з’єднання), send (надсилає дані), recv
(приймає дані). Нижче наведено модуль однопотокового сервера з
адресою ‘127.0.0.1’ і портом 50007. Сервер отримує дані через
87