python实例 盖房子种树记好时间,python实例,[Python]代码#!


[Python]代码

#!/usr/bin/env python  # -*- coding: utf-8 -*-  # Last Update:  __revision__ = '0.1'  __author__ = 'lxd'  import threading  import time  class TimeWorks(object):      def __init__(self):          self.wait_works = {}#等待工作列表,包括工作的所有细节          self.wait_times_threads = []#线程列表      def setTime(self, data, seconds):          """将data放入等待工作列表中,并将工作放入线程中等待         """          def sleep(seconds):              time.sleep(seconds)          atime = threading.Thread(target = sleep, args = (seconds, ))          atime.setDaemon(True)          atime.start()          self.wait_times_threads.append(atime)          self.wait_works.update({atime.name:data})      def checkTimeThread(self):          """获得时间已到的工作         """          for atime in self.wait_times_threads:              if not atime.isAlive():                  self.wait_times_threads.remove(atime)                  return self.wait_works.pop(atime.name)  if __name__ == '__main__':      print 'start'      timeWorks = TimeWorks()      build = {'kind':'build', 'name':'build1', 'pos':(1, 2)}      timeWorks.setTime(build, 5)      farm = {'kind':'farm', 'name':'tom', 'pos':(3, 5)}      timeWorks.setTime(farm, 3)      def build_something(data):          print 'build_something', str(data)      def farm_something(data):          print 'farm_something', str(data)      i = 0      while True:          print 'do_something', i          i += 1          time.sleep(1)          data = timeWorks.checkTimeThread()          if data:              if data['kind'] == 'build':                  build_something(data)              elif data['kind'] == 'farm':                  farm_something(data)

评论关闭