在回答之前,请理解我不希望你为我做这项工作.我更愿意回答一个措辞性的答案,为什么我的(可能是理论上的)问题存在,并且解释了修复它的过程.当有人为我做这项工作时,我发现很难正确地学习.先感谢您.
我有这个功能:它完全像它正在做的那样.它使用包含facebook ID的页面中的html,并在找到后返回ID.
def getID(data): #Find an ID from HTML input. data = str(data) appstring = 'http://apps.facebook.com/castle_age/keep.php?user=' #We're gonna find this in the html. appstr_start_pos = data.find(appstring) #Tell us where we found it oh mighty one! if appstr_start_pos != -1: #If we find it. begin_ID_pos = appstr_start_pos + len(appstring) end_ID_pos = data.find('"', begin_ID_pos) #Find the end quote, that'll be the end of our ID string. our_ID = data[begin_ID_pos:end_ID_pos] return our_ID
现在我没有把它打包在我的一个使用thread.Threading方法的类中,但我仍然经常调用它.我的代码现在只运行一个线程,我可能需要从另一个线程类调用此函数; 这可能吗?如果没有,我如何在线程类之间使用此函数?
一个更简单的问题形式:如果我从多线程环境调用此函数,我会遇到问题,还是需要将其移动到自己的类中?有没有办法在两个不同的线程对象之间保持函数可用(如果是这样,最简单的方法是什么)?
以下是完整的代码:http://pastebin.com/txH8PvL3 - 请记住它是一个WIP,作为学习线程的练习......
一个更简单的问题形式:如果我从多线程环境调用此函数,我是否会遇到问题,
是的,从我能说的是它是线程安全的
或者我是否需要将其移入自己的班级?
线程安全与类无关:它与共享状态有关.如果线程共享状态,则必须设置以线程安全的方式访问/改变此状态,即使用锁.