Ó°Ï·µÄÊÓ¾õÊ¢Ñç
Ó°Ï·×÷ΪÊÓ¾õÒÕÊõµÄáÛ·åÖ®×÷£¬Æä»ÃæºÍÒôЧµÄÖÊÁ¿Ö±½ÓÓ°Ïì׏ÛÖڵĹÛÓ°ÌåÑé¡£ÔÚ¡°Ò»Æð²Ý¡±Æ½Ì¨ÉÏ£¬ÎÒÃǾ«Ñ¡ÁËÖÖÖÖÀàÐ͵ÄÓ°Ï·£¬´Ó¾µäÀÏÆ¬µ½×îÐÂÉÏÓ³µÄ´óƬ£¬Ó¦Óо¡ÓС£Ã¿Ò»²¿Ó°Ï·¶¼¾¹ý¸ßÖÊÁ¿µÄÊÓÆµºÍÒôƵ´¦Àí£¬È·±£ÄúÔÚ¼ÒÖÐÒ²ÄÜÏíÊܵ½Ó°Ôº¼¶µÄ¹ÛÓ°ÌåÑé¡£
¸ßÇåÓ°Ï·×ÊÔ´µÄ½âËø£¬ÈÃÄú¿ÉÒÔÔÚÈκÎʱºò£¬ÈκÎËùÔÚ£¬ÏíÊܵ½×î¶¥¼¶µÄÊÓÌýÌåÑé¡£ÎÞÂÛÊǵ¥¶ÀÒ»È˾²Ïí¸ßÇåÓ°Ï·£¬ÕÕ¾ÉÓëÅóÓÑÅäºÏԢĿ¸ßÇåµçÊӾ磬¸ßÇå×ÊÔ´¶¼ÄÜ´ø¸øÄúÎÞÓëÂױȵĸйÙÏíÊÜ¡£ÌرðÊǹØÓÚÄÇЩϲ»¶Ì½Ë÷ÊÓ¾õϸ½ÚµÄ¹ÛÖÚ£¬¸ßÇå×ÊÔ´µÄ½âËøÎÞÒÉÊÇÒ»³¡ÊÓ¾õÊ¢Ñç¡£
´úÂëʵÏÖ£º
importtimeimportthreadingfromcollectionsimportdequeclassTaskScheduler:def__init__(self):self.tasks=deque()self.task_lock=threading.Lock()self.running=Falseself.task_thread=Nonedefadd_task(self,task_name,interval):withself.task_lock:self.tasks.append((task_name,interval))defremove_task(self,task_name):withself.task_lock:self.tasks=deque((task,interval)fortask,intervalinself.tasksiftask!=task_name)deflist_tasks(self):withself.task_lock:return(task,interval)fortask,intervalinself.tasksdefexecute_task(self):whileself.running:withself.task_lock:current_time=time.time()#Checkifanytaskneedstobeexecutednext_task=Nonefortask,intervalinself.tasks:next_execution_time=current_time+intervalifnext_taskisNoneornext_execution_time0:time.sleep(sleep_time)print(f"Executingtask:{task}at{time.ctime()}")defstart(self):ifnotself.running:self.running=Trueself.task_thread=threading.Thread(target=self.execute_task)self.task_thread.start()defstop(self):self.running=Falseifself.task_threadandself.task_thread.is_alive():self.task_thread.join()#ʾÀýʹÓÃif__name__=="__main__":scheduler=TaskScheduler()scheduler.add_task("Task1",10)#ÿ10ÃëÖ´ÐÐÒ»´ÎTask1scheduler.add_task("Task2",5)#ÿ5ÃëÖ´ÐÐÒ»´ÎTask2print(scheduler.list_tasks())#Êä³öÄ¿½ñËùÓеÄÈÎÎñÁбí?scheduler.remove_task("Task2")print(scheduler.list_tasks())#Êä³öÄ¿½ñËùÓеÄÈÎÎñÁбíscheduler.start()time.sleep(60)#ÈÃÈÎÎñÔËÐÐÒ»¶Îʱ¼äscheduler.stop()
¼¼ÊõÖ§³Ö£º¸ßÇå×ÊÔ´µÄ±³ºó
¸ßÇå×ÊÔ´µÄ?½âËø£¬Àë²»¿ªÏȽøµÄ?¼¼ÊõÖ§³Ö¡£ÔÚ¡°Ò»Æð²Ý¡±Æ½Ì¨ÉÏ£¬ÎÒÃǽÓÄÉÁË×îÏȽøµÄÊÓÆµºÍÒôƵѹËõ¼¼Êõ£¬È·±£Ã¿Ò»¸ö×ÊÔ´¶¼ÄÜÔÚ×î¼ÑÖÊÁ¿Ï´«Êä¡£ÎÒÃǵÄЧÀÍÆ÷ºÍÍøÂç»ù´¡?ÉèʩҲÊÇÒ»Á÷µÄ£¬È·±£ÄúÔÚÈκÎʱ¼ä¶¼ÄÜ˳³©»á¼û¸ßÇå×ÊÔ´¡£
¼¼ÊõµÄ?½ø²½£¬ÈøßÇå×ÊÔ´µÄ½âËø±äµÃÔ½·¢±ã?½ÝºÍ¸ßЧ¡£ÎÞÂÛÊÇÁ÷ýÌåԢĿ£¬ÕÕ¾ÉÏÂÔØÀëÏßԢĿ£¬¡°Ò»Æð²Ý¡±¶¼ÄÜÌṩ×î¼ÑµÄÓû§ÌåÑé¡£ÎÒÃÇÖÂÁ¦ÓÚΪÓû§Ìṩ×îÓÅÖʵļ¼ÊõÖ§³Ö£¬ÈÃÄúÔÚÏíÊܸßÇå×ÊÔ´µÄÒ²ÄܸÐÊܵ½¼¼ÊõµÄ½ø²½´øÀ´µÄ±ã½ÝºÍ¸ßЧ¡£
»¥¶¯»¯
»¥¶¯ÐÔÊÇÌáÉýÓû§ÌåÑéµÄ?ÖØÒªÊֶΡ£Î´À´£¬¸ßÇå×ÊÔ´½«»áÔ½·¢»¥¶¯»¯¡£ÀýÈ磬ͨ¹ýÔöÇ¿ÏÖʵ£¨AR£©ºÍÐéÄâÏÖʵ£¨VR£©¼¼Êõ£¬ÎÒÃÇ¿ÉÒÔΪÓû§ÌṩԽ·¢ÌÕ×íʽµÄÌåÑ飻ͨ¹ý»¥¶¯Ê½Ñ§Ï°ÄÚÈÝ£¬ÎÒÃÇ¿ÉÒÔÔöÇ¿Óû§µÄ¼ÓÈë¸ÐºÍѧϰЧ¹û¡£
¡°Ò»Æð²Ý¡±¸ßÇå×ÊÔ´µÄ¿´·¨ËäÈ»¼òµ¥£¬µ«Æä±³ºóÔ̺¬µÄ¸»ºñÄÚººÍ¹ã·ºÓ¦ÓÃǰ¾°£¬Ê¹ÆäÔÚµ±½ñÊý×Ö»¯×ªÐ͵ÄÀ˳±ÖоßÓÐÖØÒªµÄÏÖʵÒâÒ塣ͨ¹ýÀí½âºÍÕÆÎÕÕâÒ»¿´·¨£¬ÎÒÃÇ¿ÉÒÔ¸üºÃµØ¼ÓÈëºÍÍÆ¶¯Êý×Ö»¯×ªÐÍ£¬ÎªÉç»áºÍ¸öÈ˵ÄÉú³¤Ð¢¾´Á¦Á¿¡£
Ï£Íû±¾ÎÄÄܹ»×ÊÖúÄú¸üºÃµØÓ߽⡰һÆð²Ý¡±¸ßÇå×ÊÔ´µÄ½¹µã¼ÄÒåÓëÒªº¦µã¡£Èç¹ûÄúÓÐÈκÎÒÉÎÊ»òÐèÒª½øÒ»²½µÄÐÅÏ¢£¬½Ó´ýÔÚÆÀÂÛÇøÁôÑÔ»òÁªÏµÔƶ¥¼¯ÍÅ¡£ÈÃÎÒÃÇÒ»Æð̽ÌÖºÍÁ¢Ò죬ÅäºÏÍÆ¶¯Êý×Ö»¯Ê±´úµÄÉú³¤¡£
´¥Êֿɼ°µÄ?¸ßÇå×ÊÔ´
ÔÚ¡°Ò»Æð²Ý¡±Æ½Ì¨ÉÏ£¬¸ßÇå×ÊÔ´µÄ½âËø±äµÃÒì³£¼òµ¥¡£ÎÞÂÛÄúÊÇӰϷϲºÃÕß¡¢µçÊÓ¾çÃÔ£¬ÕÕ¾ÉÒôÀÖϲºÃÕߣ¬¡°Ò»Æð²Ý¡±¶¼ÄÜÂú×ãÄúµÄËùÓÐÐèÇó¡£Í¨¹ý¾«ÐÄÌôÑ¡ºÍ¸ßÖÊÁ¿µÄÊÓÆµºÍÒôƵ×ÊÔ´£¬Æ½Ì¨ÎªÓû§ÌṩÁËǰËùδÓеĸßÇåÌåÑé¡£ÎÞÂÛÊÇ4KÓ°Ï·¡¢¸ß±£ÕæÒôÀÖ£¬ÕÕ¾ÉϸÄåµÄ¼Í¼Ƭ£¬ÕâЩ×ÊÔ´¶¼ÊǾ¹ý¾«ÐÄ´òÄ¥µÄ?£¬È·±£Ã¿Ò»¸öϸ½Ú¶¼ÄÜ·ºÆð¸øÄú×î¼ÑµÄ¹Û¸ÐºÍÌý¸Ð¡£
ÔÚ?ÌâÄ¿£º
ʵÏÖÒ»¸ö¼òµ¥µÄÈÎÎñµ÷Àíϵͳ£¬¸Ãϵͳ¿ÉÒÔ½ÓÊÜÈÎÎñ£¬²¢ÔÚÒ»¶¨µÄ?ʱ¼ä¼ä¸ôÄÚÖ´ÐÐÈÎÎñ¡£ÄãÐèҪʵÏÖÒÔϹ¦Ð§£º
Ìí¼ÓÈÎÎñ£º¿ÉÒÔÌí¼ÓеÄÈÎÎñ£¬ÈÎÎñÓ¦¸Ã°üÀ¨ÈÎÎñÃû³ÆºÍÖ´ÐÐʱ¼ä¡£Ö´ÐÐÈÎÎñ£ºÏµÍ³Ó¦¸ÃÔÚÖ¸¶¨µÄʱ¼ä¼ä¸ôÄÚ×Ô¶¯Ö´ÐÐÈÎÎñ¡£ÈÎÎñÖ´ÐÐʱ£¬Êä³öÈÎÎñÃû³ÆºÍÖ´ÐÐʱ¼ä¡£¼ì²ìÈÎÎñÁÐ±í£º¿ÉÒÔ¼ì²ìÄ¿½ñËùÓеÄÈÎÎñÁÐ±í¡£É¾³ýÈÎÎñ£º¿ÉÒÔɾ³ýÖ¸¶¨µÄÈÎÎñ¡£
Êý×Ö»¯×ªÐÍµÄÆ«Ïò
ÔÚÏß½ÌÓý£º¸ßÇå×ÊÔ´ºÍ¼¯ÌåÏàÖú´´×÷ÊÇÔÚÏß½ÌÓýƽ̨µÄ½¹µã¡£Í¨¹ý¸ßÇåÊÓÆµ¡¢¸ßÇåͼƬ¡¢»¥¶¯Ê½Ñ§Ï°ÄÚÈݵȣ¬ÎÒÃÇÄܹ»ÎªÑ§ÉúÌṩԽ±¬·¢¶¯¡¢Ö±¹ÛµÄѧϰÌåÑé¡£Ô¶³Ì°ì¹«£ºÔÚÊý×Ö»¯×ªÐ͵ÄÀú³ÌÖУ¬Ô¶³Ì?°ì¹«¹¤¾ßµÄÉú³¤Àë²»¿ª¸ßÇå×ÊÔ´ºÍ¼¯ÌåÏàÖú´´×÷¡£¸ßÇ弯»á¼Í¼¡¢¸ßÇåÐ×÷ÎĵµµÈ£¬¶¼ÊÇÔ¶³Ì°ì¹«µÄÖØÒª×é³É?²¿·Ö¡£
ÖÇÄÜÒ½ÁÆ£º¸ßÇå×ÊÔ´ÔÚÖÇÄÜÒ½ÁÆÖÐÒ²·¢»Ó×ÅÖØÒª×÷Ó᣸ßÇåÒ½ÁÆÍ¼Ïñ¡¢¸ßÇåÊÖÊõÊÓÆµµÈ£¬Äܹ»ÎªÒ½ÁÆ×¨ÒµÈËÊ¿ÌṩԽ·¢ÏêʵµÄÐÅÏ¢£¬ÌáÉýÒ½ÁÆÐ§À͵ÄÖÊÁ¿¡£
ʾÀý£º
#´´Á¢ÈÎÎñµ÷Àíϵͳscheduler=TaskScheduler()#Ìí¼ÓÈÎÎñscheduler.add_task("Task1",10)#ÿ10ÃëÖ´ÐÐÒ»´ÎTask1scheduler.add_task("Task2",5)#ÿ5ÃëÖ´ÐÐÒ»´ÎTask2#¼ì²ìÈÎÎñÁбíprint(scheduler.list_tasks())#Êä³öÄ¿½ñËùÓеÄÈÎÎñÁбí#ɾ³ýÈÎÎñscheduler.remove_task("Task2")#¼ì²ìÈÎÎñÁбíprint(scheduler.list_tasks())#Êä³öÄ¿½ñËùÓеÄ?ÈÎÎñÁбí#¿ªÊ¼Ö´ÐÐÈÎÎñscheduler.start()
У¶Ô£ºÀîËĶË(p6mu9CWFoIx7YFddy4eQTuEboRc9VR7b9b)


