zoukankan      html  css  js  c++  java
  • 开发一个FTP软件

    一、开发一个多并发的FTP server

    需求:

    1、允许同时支持多用户在线
    2、用户认证
    3、用户空间配额
    4、权限限制
    5、可上传下载、上传下载过程中显示进度条
    6、用户可远程切换目录、查看服务端文件列表等
    7、可断电续传
    View Code

     如何实现进度条:

    import time,sys
    for i in range(40):
        sys.stdout.write("#")
        sys.stdout.flush()
        time(0.4)
    View Code

    二、线程进程和CPU原理

     进程是一个资源池

    三、线程和线程锁

    在多个线程同时抢/修改同一份数据的时候,有可能导致出错,那么就需要加锁

    #!/usr/bin/env python
    # _*_ coding:utf-8 _*_
    __author__ = 'Charles'
    
    import threading
    import time
    
    def run(num):
        lock.acquire()   #开启锁
        global data
        print ("thread...",num)
        data -=1
        lock.release()    #释放锁
        time.sleep(1)
    
    lock = threading.Lock()
    data = 100
    for i in range(100):
        t = threading.Thread(target=run,args=(i,))    #启用一个线程,运行函数run,args里面表示run函数的参数,注意一定要加逗号
        t.start()    #开启线程
    
    print "---data:",data
    View Code

    在python中,python的多线程调用的是操作系统的原生线程,同时工作的线程只有一个,不能利用多核的优势,如果需要多核的优势,可以利用多进程。

  • 相关阅读:
    高性能SQL编码规范
    识别SQL Server 性能杀手
    centOS7安装nginx
    linux安装apache
    算术表达式的前缀表达式,中缀表达式和后缀表达式
    有特殊字符的JSON串
    sqlserver 找到执行慢的sql
    SQL索引建立遵守六大铁律
    [SQL Server 2005/2008] select语句中指定索引
    ubuntu下vsftpd虚拟用户配置
  • 原文地址:https://www.cnblogs.com/cqq-20151202/p/5211139.html
Copyright © 2011-2022 走看看