点点网站开发技术分享

记录个人日常开发笔记与技巧

python多线程与其他语言相比有很大的区别,python中的多线程,由于cil锁的缘故,导致cpu同一时间只能执行一个线程,这样产生的问题就是别管你的cpu是几核的,都没什么卵用。但是这种情况是计算密集性才会有的问题,如果牵涉到的是计算密集性,那么python可以通过多线程来做这种操作,这样就解决了多核缺并不能提高效率的问题。

阅读全文 »

进程(Process)是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础。在早期面向进程设计的计算机结构中,进程是程序的基本执行实体;在当代面向线程设计的计算机结构中,进程是线程的容器。程序是指令、数据及其组织形式的描述,进程是程序的实体

阅读全文 »

这我们来一起做一个简单的ftp系统,功能要求如下:

  • 1、多用户同时登陆
  • 2、用户登录,加密认证
  • 3、上传、下载文件,保证文件一致性
  • 4、传输过程中实现进度条
  • 5、不同用户目录不同,且只能访问用户自己目录
  • 6、对用户进行磁盘调配、不同用户调配可以不同
  • 7、用户登录server后可在其权限目录下子目录切换
  • 8、查看当前用户目录下文件,新建文件夹
  • 9、删除文件和空文件夹
  • 10、充分使用面向对象知识
  • 11、支持断点续传
阅读全文 »

socketserver实现多客户端与服务端交互就是用到了多线程,python也帮我们提供了多线程模块**threading,**我们可以定义一个函数接收两个参数,一个与客户端的连接句柄,一个是客户端地址,函数内部执行与客户端的具体交互;外部使用socket正常逻辑,执行到accept时开启一个包含上述函数的线程,就是这么简单

阅读全文 »

之前用单用户ftp上传,服务器同时只能处理一个客户端的连接,要做到多客户端连接可以直接使用python帮我们封装好的socketserver模块。以下代码为多用户ftp上传示例,里面用到md5文件一致性校验,在一个win机器上同时扮演客户端和服务器没问题,但是当有一方使用了linux就出现问题了。运行代码测试发现;同样的文件内容,在win和linux是进行md5加密内容发现执行的结果不一样。没测试在两台win上是否一样,有其他人看到可以自己测试下。

阅读全文 »
0%