Root Only

подайте на пропитание, бывшему админу бывшего локалхоста

Menu
  • Администрирование
  • Программирование
  • Монетизация
  • Продвижение
  • Хлам
Menu

Python: multiprocessing vs multithreading

И снова этот PYTHON!

Про GIL (global interpreter lock) python написано уже достаточно, поэтому ниже я всего-лишь хочу привести пару примеров работы с процессами и потоками на python.
Каждый из них порождает 25 «спящих»(sleep 10) «рабочих»(worker), которые информируют о своем старте и завершении в stdout.
С их помощью можно сравнить их работу в тех или иных условиях, провести анализ и выбрать тот вариант, который наиболее подходит для решения вашей задачи.

Пример мультипроцессорного приложения:

#!/usr/bin/env python
# -*- coding: utf-8 -*-

import multiprocessing
import time

def worker(num):
    print "[+] start " + str(num)
    time.sleep(10)
    print "[-] ended " + str(num)
    return

jobs = []
for i in range(25):
    p = multiprocessing.Process(target=worker, args=(i,))
    jobs.append(p)
    print "run " + str(i)
    p.start()

Пример мультипотокового приложения:

#!/usr/bin/env python
# -*- coding: utf-8 -*-

import threading
import time

def worker(num):
    print "[+] start " + str(num)
    time.sleep(10)
    print "[-] ended " + str(num)
    return

jobs = []
for i in range(25):
    t = threading.Thread(target=worker, args=(i,))
    print "run " + str(i)
    t.start()

Поиск

Метки

archlinux awk bash binlog cache console css debian docker ffmpeg filemanager hash healthcheck ipcam java jquery jscript loginza mail md5 mysql mysqldump netbeans nginx php PHP-функция на JScript python qemu quote redirect replication RSS session sniffer socat systemd tinymce unix-socket usb vim windows 7 youtube авторизация продвижение социальные сети

Безопасность

© 2023 Root Only