使用threading的继承Treading的方法
#coding:utf8
'''
def isprime(m):
#质数是指只能被1和它本身整除的数
for i in range(2, m/2+1):
if m % i == 0:
return False
return True
if __name__ == '__main__':
print filter(isprime, range(2,101))
'''
#这里就分100线程试下,用class的方式重写
import threading
rs = [] #用来成放满足条件的数字,最后打印用
lock = threading.RLock()
class Isprime(threading.Thread):
'''判断一个数是不是质数'''
def __init__(self,num,name=None):
threading.Thread.__init__(self) #不要忘记
self.num = num
self.isstop = False
def run(self):
global rs,lock
isprime = False
m = self.num
for i in range(2, m/2+1):
if m % i == 0:
isprime = True
break
lock.acquire() #加锁控制
if not isprime:
rs.append(m)
lock.release()
def main():
global rs
threads = []
#装载线程
for i in range(2,101):
threads.append(Isprime(i))
#启动线程
for x in threads:
x.start()
#阻塞线程直到结束
for s in threads:
x.join()
#打印结果
print rs
print len(rs)
if __name__=='__main__':
main()
结果如下图:
[2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97]
25