28.01.2015 Views

Tutorial Python - Starship

Tutorial Python - Starship

Tutorial Python - Starship

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

import threading, zipfile<br />

class AsyncZip(threading.Thread):<br />

def __init__(self, infile, outfile):<br />

threading.Thread.__init__(self)<br />

self.infile = infile<br />

self.outfile = outfile<br />

def run(self):<br />

f = zipfile.ZipFile(self.outfile, ’w’, zipfile.ZIP_DEFLATED)<br />

f.write(self.infile)<br />

f.close()<br />

print ’Finished background zip of: ’, self.infile<br />

background = AsyncZip(’mydata.txt’, ’myarchive.zip’)<br />

background.start()<br />

print ’The main program continues to run in foreground.’<br />

background.join() # Wait for the background task to finish<br />

print ’Main program waited until background was done.’<br />

Principala provocare in proiectarea aplicaţiilor multi-threading este aceea de a coordona thread-urile care<br />

partajează aceleaşi date, sau aceleaşi resurse. La sârşit, modulele thread generează un număr de primitive de<br />

sincronizare precum : variabile de blocare, de stare, indicatori de tip semafor.<br />

11.5 Conectivitatea (Logging)<br />

Modulul logging oferă un sistem de conectare flexibil şi cu toate caracteristicile specifice unui astfel de sistem.Mesajele<br />

de conectare sunt transmise către un fişier, sau către sys.stderr :<br />

import logging<br />

logging.debug(’Debugging information’)<br />

logging.info(’Informational message’)<br />

logging.warning(’Warning:config file %s not found’, ’server.conf’)<br />

logging.error(’Error occurred’)<br />

logging.critical(’Critical error -- shutting down’)<br />

Acestea transmit următoarele :<br />

WARNING:root:Warning:config file server.conf not found<br />

ERROR:root:Error occurred<br />

CRITICAL:root:Critical error -- shutting down<br />

Implicit mesajele cu informaţii si cele de depanare sunt suprimate şi ieşirea este direcţionată către stderr. Alte<br />

opţiuni de ieşire includ rutarea mesajelor prin email, datagrame, soket, sau server HTML. Folosind filtre noi se<br />

pot selecta diferite rute funcţie de prioritatea mesajului : DEBUG, INFO, WARNING,ERROR, CRITICAL.<br />

Sistemul de conectare (loggin) poate fi configurat direct de <strong>Python</strong>, dar poate fi şi preluat dintr-un fişier de configurare<br />

editat de utilizator, pentru a particulariza conectarea fără a altera setarea mediului.<br />

78 Capitolul 11. Pe scurt despre Standard Library - partea II

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!