我有两个简单的函数(循环在一个范围内),可以独立运行,没有任何依赖性。。我尝试使用Python多处理模块和多线程模块来运行这两个函数。。在
当我比较输出时,我发现多进程应用程序比多线程模块多花费1秒。。在
我读到多线程不是那么有效,因为全局解释器锁。。。在
根据以上陈述-
1如果两个进程之间没有依赖关系,是否最好使用多处理?
2如何计算我可以在我的机器上运行的进程/线程数,以获得最大的效率。
三。另外,有没有一种方法可以通过使用多线程来计算程序的效率。。。在
多线程模块。。。在from multiprocessing import Process
import thread
import platform
import os
import time
import threading
class Thread1(threading.Thread):
def __init__(self,threadindicator):
threading.Thread.__init__(self)
self.threadind = threadindicator
def run(self):
starttime = time.time()
if self.threadind == 'A':
process1()
else:
process2()
endtime = time.time()
print 'Thread 1 complete : Time Taken = ', endtime - starttime
def process1():
starttime = time.time()
for i in range(100000):
for j in range(10000):
pass
endtime = time.time()
def process2():
for i in range(1000):
for j in range(1000):
pass
def main():
print 'Main Thread'
starttime = time.time()
thread1 = Thread1('A')
thread2 = Thread1('B')
thread1.start()
thread2.start()
threads = []
threads.append(thread1)
threads.append(thread2)
for t in threads:
t.join()
endtime = time.time()
print 'Main Thread Complete , Total Time Taken = ', endtime - starttime
if __name__ == '__main__':
main()
多进程模块
^{pr2}$