pythonÖеĶàÏß³Ì
2007-07-15
pythonÖеĶàỊ̈߳¨2£©
¹Ø¼ü×Ö: python thread threading
ÎÒÃÇÔÚÉÏÒ»ÕÂÖп´µ½Ê¹ÓÃthreading.Thread.join()¿ÉÒÔ±ÜÃâÖ÷³ÌÐòÔڵȴýÆäËüÏ߳̽áÊøµÄ¹ý³ÌÖеõ½Ê±¼äƬ¡£ÊÂʵÉÏ£¬ÔÚÏ̱߳à³ÌÖо³£»áÓöµ½Ò»¸öÏß³ÌÐèÒªµÈ´ýÁíÒ»¸öÏß³ÌÖеÄÇé¿ö¡£ÔÚÕâÖÖÇé¿öÏ£¬ÐèÒªÖØÉêµÄÊÇ£¬ÎÒÃDz»Ï£ÍûµÈ´ýµÄÏ̻߳ñµÃʱ¼äƬ¡£
½â¾öµÄ°ì·¨ÊÇʹÓÃÌõ¼þ±äÁ¿£¬¾ÍÏñËüµÄÃû³Æ£¬´úÂëʹÓÃËüÃÇÀ´µÈ´ýһЩÌõ¼þµÄ³ÉÁ¢¡£´ó¶àÊýÏß³Ìϵͳ¶¼Ö§³ÖÌõ¼þ±äÁ¿£¬pythonµÄthreading°üÒ²²»ÀýÍâ¡£
ÀýÈ磬pthreads°ü£¬Ê¹ÓÃpthread_condÀ´´ú±íÕâÖÖ±äÁ¿£¬²¢ÇÒÓк¯Êýpthread_cond_wait()£¬Ëü´ú±íÒ»¸öÏ̵߳÷ÓõȴýÒ»¸öʼþµÄ·¢Éú£»ÁíÒ»¸öº¯Êý,pthread_cond_signal()£¬ÁíÒ»¸öÏ̵߳÷Ó㬴ú±íÉùÃ÷µÈ´ýµÄÏß³ÌʼþÒѾ·¢Éú¡£
pythonÖеÄÌõ¼þ±äÁ¿½ÏÖ®CÓïÑÔÖеÄÀ´Ëµ¸üÈÝÒ×ʹÓ㬶ÔÓÚµÚÒ»²ã´ÎµÄÌõ¼þ±äÁ¿À´Ëµ£¬¿ÉÒÔʹÓÃÀàthreading.Condition,ËüÄܹ»ÔÚ´ó¶àÊýµÄÏß³ÌϵͳÖÐÁ¼ºÃµÄ¹¤×÷£¬µ«ÊÇʹÓÃÕâÖÖÌõ¼þ±äÁ¿ÐèÒª½øÐжîÍâµÄ½âËøºÍ±ÕËø²Ù×÷¡£
pythonÌṩÁËÒ»ÖÖ¸ü¸ß²ã´ÎµÄÀ࣬threading.Event,ËüÊǶÔÓÚthreading.ConditionµÄÒ»ÖÖ·â×°£¬¶øÇÒÔÚºǫ́×Ô¶¯´¦ÀíÓйصÄËø²Ù×÷¡£
½ÓÏÂÈ¥µÄÀý×Ó½«Ê¹ÓöàÏß³ÌÀ´ÊµÏÖÒ»¸ö¶Ë¿ÚɨÃèÆ÷£¬¶à¶Ë¿Ú²¢ÐÐɨÃ裬ÿ¸ö¶Ë¿Ú¶ÔÓ¦Ò»¸öỊ̈߳¬Í¬Ê±³ÌÐò¿ÉÒÔ¿ØÖÆÏ̵߳ĸöÊý¡£Èç¹ûÖ÷Ïß³Ì×¼±¸¶ÔÒ»¸öеĶ˿ڽøÐÐɨÃè²Ù×÷µ«ÊÇÒѾ´ïµ½Ïß³ÌÊýµÄÉÏÏÞʱ£¬Ö÷Ï̻߳áµÈ´ýÏß³ÌÊý¼õÉÙµ½Ïß³ÌÊýÉÏÏÞÒÔÏÂÔÙ½øÐÐж˿ڵÄɨÃ裬Õâ¸ö²½Öèͨ¹ýÌõ¼þ±äÁ¿À´ÊµÏÖ¡£
1 # portscanner.py: checks for active ports on a given machine; would be
2 # more realistic if checked several hosts at once; different threads
3 # check different ports; there is a self-imposed limit on the number of
4 # threads, and the event mechanism is used to wait if that limit is
5 # reached
6
7 # usage: python portscanner.py host maxthreads
8
9 import sys, threading, socket
10
11 class scanner(threading.Thread):
12 tlist = [] # list of all current scanner threads
13 maxthreads = int(sys.argv[2]) # max number of threads we’re allowing
14 evnt = threading.Event() # e
Ïà¹ØÎĵµ£º
ÒÔÏÂΪÎÒÔÚ´¦ÀíÍøÒ³±àÂëÎÊÌâ¿´µÄÎÄÕ£¬ÏÖÔÚдÅÀ³æ×Ô¼º´¦ÀíÍøÒ³±àÂëÎÊÌâȷʵ±È½ÏÂé·³£¬ÍøÒ³Ò²Ã»Óй涨
Ò»¶¨ÒªÔÚMETAÍ·ÐÅÏ¢Àï´ø±àÂëÐÅÏ¢£¬¶øºÜ¶àÈËдµÄ̽²â±àÂë¾ÍÊÇ»ñÈ¡META£¬ÕâÊDz»¿ÉÈ¡µÄ£¬¶øÓеÄÈËÔòÊÇ·ÖÎöHTTP·µ»ØµÄÊý¾Ý°üÀï±ßµÄ
charset£¬È磨a.headers.getparam('charset')£©£¬¶øHTTP°üûÓй涨һ¶¨Òª´øcharset£¬ËùÒ ......
×÷ÕߣºÀÏÍõ
PythonËÆºõºÜÌÖÑáÐÞÊηû£¬Ã»Óг£¼ûµÄstaticÓï·¨¡£Æä¾²Ì¬·½·¨µÄʵÏÖ´óÖÂÓÐÒÔÏÂÁ½ÖÖ·½·¨£º
µÚÒ»ÖÖ·½Ê½£¨staticmethod£©£º
>>> class Foo:
str = "I'm a static method."
def ba ......
from http://blog.alexa-pro.cn/?p=349
ÄÚÈݸÅÒª:Python´úÂë¼ÓÃÜ,Ô´Âë±£»¤,´úÂë±£»¤,pycÎļþ
------------------------------------------------
¹ØÓÚpython´úÂë±£»¤ÔÚÍøÉϺÃÏñһֱûÓкܺõĽéÉÜ,¿ÉÄܺÍPYTHONµÄÉè¼Æ³õÖÔ"¿ªÔ´"ÓйØ,µ«Ô½À´Ô½¶àµÄÐÖµÜдµÄ¼ÓÈëPYTHONÕóÓª,¿ª·¢¹¤¾ßÓÃ;¸÷Òì,ÔÚÉÌÒµÓ¦ÓÃÖдúÂë± ......
ÏÂÃæ¶ÔPython½ø³Ì½øÐÐÉîÈë¶ø×ÐϸµÄѧϰ£¬Ê×ÏÈÏÈÈôó¼ÒÁ˽âÏÂʲôÊÇPython½ø³Ì£¬ÒÔ¼°ÔÚ¶ÔPython½ø³Ì½øÐд¦ÀíʱעÒâµÄÏà¹ØÎÊÌ⣬½ÓÏÂÀ´£¬¾ÍÓÉÎÒ¸ø´ó¼Ò½øÐнéÉÜѧϰ£¬½ö¹©´ó¼Òѧϰ¡£
²»¹ý£¬ËäÈ»½ø³Ì¿ÉÔÚµ¥¶ÀµÄÄÚ´æ¿Õ¼äÖÐÖ´ÐУ¬µ«³ý·ÇÕâЩPython½ø³ÌÔÚµ¥¶ÀµÄ´¦ÀíÆ÷ÉÏÖ´ÐУ¬·ñÔò£¬Êµ¼Ê²¢²»ÊǓͬʱ”ÔËÐеġ£ÊÇÓɲÙ×÷ ......