`
haoningabc
  • 浏览: 1483043 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

一道python的线程题?

阅读更多
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 楼 bestchenwu 2011-06-02  
问题1:用线程拆分?10000个线程,每个循环10000次?
咋写?嫩行不?

呵呵 Python虚拟机跟Java虚拟机一样,都有可允许的最大线程数的。貌似JAVA是1000

相关推荐

    110道python面试题

    题目来源于真实的笔试和面试场景,每一道题都是经过实战检验的重要知识点。对于Python基础知识不牢固的学习者来说,这是一个很好的练习机会,通过解决这些问题可以加深对Python核心概念的理解。 #### 二、具体知识...

    刷编程题_Python.zip

    【标题】"刷编程题_Python.zip" 暗示了这个压缩包包含了一系列与Python编程相关的练习题目。这些题目可能是为了帮助学习者提升Python编程技能,熟悉编程逻辑,掌握数据结构、算法以及Python语言特性而设计的。通过...

    python入门到高级全栈工程师培训 第3期 附课件代码

    python入门到高级全栈工程师培训视频学习资料;本资料仅用于学习,请查看...11 强插一道面试题 12 Model连表操作梳理 13 多对多自关联 14 Model操作补充 15 再插两道JavaScript面试题 16 Model操作之select_related以及...

    单项选择题1-80道结论

    每一道选择题都对应一个或多个Python的知识点,为了更好地理解和掌握Python,你需要对每个选项进行深入学习,理解其背后的原理和应用。同时,通过练习更多的题目,可以巩固和提升你的Python技能。在实际编程中,理论...

    校招笔试题2014

    这些文件可能包含了各种类型的题目,例如选择题、填空题、编程题和解答题,每一道题目都对应一个特定的技术主题。 总结上述信息,我们可以预想这个压缩包中的内容将覆盖广泛的技术领域,包括但不限于: 1. **编程...

    -offer-python-:剑指offer(python版)

    《剑指Offer:Python版》是一本针对Python程序员的面试准备书籍,旨在帮助读者掌握常见的编程面试题,提升解决问题的能力,以及对数据结构和算法的理解。这本书通常会涵盖字符串处理、数组、链表、栈、队列、树、图...

    达内笔试题

    根据提供的信息,我们可以详细分析每一道题目所涉及的知识点,并对每个选项进行解析。下面将逐一解释这些题目。 ### 第一题 **题目**: 关于上述代码编译运行的结果的是:()。 ``` 1public static void main...

    软件设计师考试解析视频试题.rar

    2015年试题的视频解析则更为详尽,通常由经验丰富的讲师或行业专家讲解,他们会逐一剖析每一道题目,解释解题思路,指出常见错误,帮助考生理解并掌握解题技巧。 在准备软件设计师考试的过程中,以下几个关键知识点...

    中级软件设计师2018上半年试题及答案解析

    试题通常包括选择题、填空题、简答题以及可能的设计分析题,覆盖了软件工程的各个重要领域,例如: 1. **软件工程基础**:这部分内容可能涉及软件生命周期、软件开发模型(如瀑布模型、敏捷开发、螺旋模型等)、...

    完美世界笔试题.zip

    【完美世界笔试题.zip】是2019年完美世界公司为应聘者准备的...对于“完美世界笔试题”这个压缩文件,解压后应仔细阅读每一道题目,理解其背后的理论,并尝试解答,以此来检验自己的技术水平和提升自己的面试竞争力。

    2008年春江苏省计算机三级偏软真题及答案详解

    其次,"2008年(秋)笔试试卷参考答案及解析.pdf"提供了每一道试题的官方答案,并且对选择题进行了具体的解释。这些解析有助于考生理解和掌握每道题目的解题思路,特别是对于解答过程中的关键步骤和原理进行深入探讨...

    2017年上半年软件设计师真题及答案解析

    【描述】中的信息虽然简洁,但我们可以通过其含义推测出,这个压缩包可能包含了以下几个部分:一套完整的2017年上半年软件设计师考试试卷,以及对每一道题目的详细解答和解析。这些内容对于备考者来说具有极高的参考...

    百度校招面试笔试题

    对于编程能力,笔试中可能会出现编程题,要求应聘者用C++、Java或Python等语言解决实际问题,如实现某种算法、优化代码效率等。这要求考生具备扎实的编程基础,熟悉常用数据结构(如数组、链表、树、图)和算法(如...

    2013上半年软考中级软件设计师试题及答案解析.zip

    6. **编程语言基础**:至少一种主流编程语言(如C++、Java、Python等)的基本语法、面向对象编程、异常处理等。 7. **法律法规与知识产权**:了解计算机相关的法律法规,如软件版权、专利、商业秘密等。 8. **项目...

    艾诺威笔试题

    在IT领域,图像处理涉及像素操作、色彩空间转换、图像增强等技术,这通常需要熟悉编程语言如Python中的PIL库或Java的AWT/Swing库。数据解析则可能涉及到JSON、XML或者CSV格式的数据读取和处理,这可能需要对编程语言...

    2009-2019软件设计师真题及答案(精华版).rar

    这个资源的特点在于其字迹清晰,讲解详细准确,意味着考生可以清晰地阅读题目,同时对每一道题目的解答有深入的理解。 软件设计师考试主要涵盖以下几个方面: 1. **软件工程**:包括需求分析、系统设计、编码、...

    蓝桥杯比赛常考试题.zip

    题目可能会测试你的语言特性使用,如C++的模板、Java的多线程、Python的迭代器等。 5. **实际应用问题**:蓝桥杯也会引入一些现实世界的问题,如网络通信、数据库查询、图像处理等,要求参赛者将理论知识应用于实践...

    程序员历年真题

    这可能包括但不限于:计算机基础、编程语言(如C++、Java、Python等)、数据结构与算法、操作系统原理、数据库管理、网络技术、软件工程、项目管理等方面。通过这些真题,我们可以深入理解这些领域的核心概念和实践...

    软件设计师中级2009-2018上真题

    3. **操作系统原理**:了解操作系统的基本概念,如进程、线程、内存管理、文件系统等,以及并发控制、死锁处理等相关知识。 4. **计算机网络**:掌握TCP/IP协议族,理解网络层次模型,包括物理层、数据链路层、网络...

Global site tag (gtag.js) - Google Analytics