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
Ïà¹ØÎĵµ£º
ÏȽ«ÉÏÃæ´´½¨ºÃµÄtestdemo¹¤³ÌĿ¼\£¬½«C:\Python25\Lib\site-packages\django\binÖеÄtestdemoĿ¼¿½±´µ½×Ô¼ºµÄ¹¤×÷Ŀ¼ÖУ¬È»ºóÆô¶¯eclipse£¬µã»÷“File”->“New”->“project…”£¬½«»á¿´µ½ÒÔÏÂ»Ãæ
Ñ¡Ôñ“Pydev Project”£¬µã»÷“Next&rdquo ......
ÕÒÁ˰ëÌìûÕÒ×Å£¬ÖÕÓÚÔÚÓ¢ÎÄÕ¾µãÉÏÕÒµ½£¬»¹ÓиÐлȺÀïµÄʯͷºÍÇòÃÔ
>>> s = datetime.datetime(2009,1,1)
>>> time.mktime(s.timetuple())
1230739200.0
±ðÍ⸶һ¸öpython¶Ôʱ¼äµÄһЩº¯Êý£¬ºÜºÃÓõÄ
ÎÒÃÇÏȵ¼Èë±ØÐëÓõ½µÄÒ»¸ömodule
>>> import time
ÉèÖÃÒ»¸öʱ¼äµÄ¸ñʽ£¬ÏÂÃæ»áÓõ½
& ......
ÿ¸öÄ£¿é¶¼ÓÐÒ»¸öÃû³Æ£¬ÔÚÄ£¿éÖпÉÒÔͨ¹ýÓï¾äÀ´ÕÒ³öÄ£¿éµÄÃû³Æ¡£ÕâÔÚÒ»¸ö³¡ºÏÌØ±ðÓÐÓÃ
——¾ÍÈçÇ°ÃæËùÌáµ½µÄ£¬µ±Ò»¸öÄ£¿é±»µÚÒ»´ÎÊäÈëµÄʱºò£¬Õâ¸öÄ£¿éµÄÖ÷¿é½«±»ÔËÐС£
ÿ¸öPythonÄ£¿é¶¼ÓÐËüµÄ__name__£¬Èç¹ûËüÊÇ'__main__'£¬Õâ˵Ã÷Õâ¸öÄ£¿é±»Óû§µ¥¶ÀÔËÐУ¬
ÎÒÃÇ¿ÉÒÔ½øÐÐÏàÓ¦µÄÇ¡µ±²Ù×÷¡£
#!/usr/bin/pytho ......
1.º¯Êý
º¯Êýͨ¹ýdef¹Ø¼ü×Ö¶¨Òå¡£def¹Ø¼ü×Öºó¸úÒ»¸öº¯ÊýµÄ ±êʶ·û
Ãû³Æ£¬È»ºó¸úÒ»¶ÔÔ²À¨ºÅ¡£Ô²À¨ºÅÖ®ÖпÉÒÔ°üÀ¨Ò»Ð©±äÁ¿Ãû£¬¸ÃÐÐÒÔðºÅ½áβ¡£½ÓÏÂÀ´ÊÇÒ»¿éÓï¾ä£¬ËüÃÇÊǺ¯ÊýÌå¡£º¯ÊýÒ²ÓÐÐβκÍʵ²Î£¬ÓëC++Ψһ²»Ò»ÑùµÄÊÇÐββ»Ð´ÀàÐͶøÒÑ£¬Ö±½Óд±äÁ¿Ãû¡£
2.globalÓï¾ä
Èç¹ûÄãÏëҪΪһ¸ö¶¨ÒåÔÚº¯ÊýÍâµÄ±äÁ¿¸³Öµ£¬ÄÇÃ´Ä ......
ãÂã¶®¶®µÄ°²×°ÁËPython£¬²»Îª±ðµÄ£¬Ö»Îª¸Ïµãʱ÷Ö£¬ÒòΪ¿´¼ûºÜ¶àÓÎÏ·¹«Ë¾¶¼ÒªÇó»áÒ»µãPython»òÕßLUA£¬Ã»°ì·¨£¬»¹ÊǶàѧһµãºÃ£¬·´ÕýÏÐ×ÅÒ²ÊÇÏÐ×Å¡£×Ô¼ºÄ¿Ç°²»¶®LINUX£¬ËùÒÔÔÝÇÒÓÃÓÃWINDOWSϵİɡ£
ÈëÃÅ»¹ºÃÈëÊÖ£¬²»ÊǾÞÄÑ£¬Ö¸³ö¼¸µãÓÐÒâ˼µÄ£º
ûÓлù±¾ÀàÐÍÁË£¬µ±ÎÒ°²cÓïÑÔÓ﷨дint xÊ ......