设为首页 收藏本站
查看: 489|回复: 0

[经验分享] 一道python的线程题?

[复制链接]

尚未签到

发表于 2017-4-27 06:27:16 | 显示全部楼层 |阅读模式
bestchenwu写得挺好地,
http://bestchenwu.iteye.com/blog/1063401
又找了一篇ibm的
http://www.ibm.com/developerworks/cn/aix/library/au-threadingpython/
想做1亿次系统调用,比如

import os,time
print time.time();
for i in range(101,1000):
#str1='curl -X PUT http://192.168.1.100:11211/hao'+str(i)+' -d '+'ning'
str1='tcrmgr put -port 11211 192.168.1.100 hao'+str(i)+' ning'
os.system(str1)
print time.time();

把1000改成10000000,4G 4核的电脑被我搞死了
问题1:用线程拆分?10000个线程,每个循环10000次?
咋写?嫩行不?
问题2:有没有神码程序监控内存状况的?cpu超过百分之多少自动kill掉,或者能判断python某个线程占用多少资源的东西?等python让人死的时候kill都来不及啊,
--------------------------
http://www.iyouf.info/pyinotify-monitor-filesystem.html
#!/usr/bin/env python
#coding=utf-8
import os
from  pyinotify import  WatchManager, Notifier, ProcessEvent,IN_DELETE, IN_CREATE,IN_MODIFY
class EventHandler(ProcessEvent):
def process_IN_CREATE(self, event):
print   "Create file: %s "  %   os.path.join(event.path,event.name)
def process_IN_DELETE(self, event):
print   "Delete file: %s "  %   os.path.join(event.path,event.name)
def process_IN_MODIFY(self, event):
print   "Modify file: %s "  %   os.path.join(event.path,event.name)

def FSMonitor(path='.'):
wm = WatchManager()
mask = IN_DELETE | IN_CREATE |IN_MODIFY
notifier = Notifier(wm, EventHandler())
wm.add_watch(path, mask,rec=True)
print 'now starting monitor %s'%(path)
while True:
try:
notifier.process_events()
if notifier.check_events():
notifier.read_events()
except KeyboardInterrupt:
notifier.stop()
break
if __name__ == "__main__":
FSMonitor()



-----------一下摘抄ibm那个源码-----------
import urllib2
import time
hosts = ["http://yahoo.com", "http://google.com", "http://amazon.com","http://ibm.com", "http://apple.com"]
start = time.time()
#grabs urls of hosts and prints first 1024 bytes of page
for host in hosts:
url = urllib2.urlopen(host)
print url.read(1024)
print "Elapsed Time: %s" % (time.time() - start)
蛋疼的ibm文章空格让我调试了半天
#!/usr/bin/env python
import Queue
import threading
import urllib2
import time
hosts = ["http://yahoo.com", "http://google.com", "http://amazon.com","http://ibm.com", "http://apple.com"]
queue = Queue.Queue()
class ThreadUrl(threading.Thread):
"""Threaded Url Grab"""
def __init__(self, queue):
threading.Thread.__init__(self)
self.queue = queue
def run(self):
while True:
#grabs host from queue
host = self.queue.get()
#grabs urls of hosts and prints first 1024 bytes of page
url = urllib2.urlopen(host)
print url.read(1024)
#signals to queue job is done
self.queue.task_done()
start = time.time()
def main():
#spawn a pool of threads, and pass them queue instance
for i in range(5):
t = ThreadUrl(queue)
t.setDaemon(True)
t.start()
#populate queue with data     
for host in hosts:
queue.put(host)
queue.join()
main()
print "Elapsed Time: %s" % (time.time() - start)

#!/usr/bin/env python
#hello_threads.py
import os
import threading
import datetime
class ThreadClass(threading.Thread):
def __init__(self,mycount):
threading.Thread.__init__(self)
self.mycount=mycount
def run(self):
os.system('tcrmgr put -port 11211 10.1.224.171 wtesthao'+str(self.mycount)+' ning')
def main():
#    now = datetime.datetime.now()
for i in range(100000):
t = ThreadClass(i)
t.start()
if __name__=="__main__":
main()

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-369644-1-1.html 上篇帖子: 通过比较学python(3) 下篇帖子: python中如何调用shell
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表