05Linux 平台,不提供任何相关库函数和工具包,只利用线程的随机调度特性和 sleep 函数的低精度特性,请编写一段程序实现:给一组字符,输
#coding=utf-8importthreadingimporttimetargetStr='abcdefg'#不重复字符串targetStrLength=len(targetStr)resultStr=''#随机排序的字符串保存到这里lock=threading.RLock()classRandThread(threading.Thread):def__init__(self,num):threading.Thread.__init__(self)self.num=numdefrun(self):time.sleep(0.5)lock.acquire()globaltargetStrglobalresultStrresultStr+=targetStr[self.num]lock.release()defmain():threads=[]#创建线程对象foriinxrange(targetStrLength):threads.append(RandThread(i))#启动线程fortinthreads:t.start()#主线程等待子线程结束fortinthreads:t.join()print'pre:',targetStrprint'random:',resultStrif__name__=='__main__':main()
来自:操作系统-线程/进程-线程相关