热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

python之路10多线程

1.socket1.创建模块2.创建socket3.sendsendallsendretsend(bytes(jkdfskjdjsf,encodingutf8))ret为发送了多少

1. socket
1.创建模块
2.创建socket
3.send sendall
send ret = send(bytes('jkdfskjdjsf',encoding = 'utf8')) ret 为发送了多少字节
sendall 会循环send 直到发送完所有数据

recv(2048) 2048一次最大可以接受多大字节的数据




2. socketserver
1.自定义类
2.自定义的类继承socketserver
3.重新定义handle函数
4.调用自定义类
5.运行


3. 上节作业
1. socket 发送字符串
2. socket 发送文件
客户端:
发送文件大小
发送可以发送消息

服务端:
接受消息(文件大小)


小知识
作用域
python 作用域链,由内向外找,直到找不到报错

python中无块级作用域
java/c# 不可输出
python/Javascript 可以输出

if 1==1:
name = 'wyx'

print(name) #name 可以输出

#python中以函数作为作用域
def func():
name = 'wyx'
print(name) 无法输出


#python作用域在执行函数之前已经确定完 输出 wyx

1. #name = 'wyx'
# def f1():
# print(name)
#
# def f2():
# name = 'eric'
# return f1
# ret = f2()
# ret()


#第二个等于第三个
2. # li = [lambda :x for x in range(10)]
# r = li[0]()
# print(r)

3. li = []
for x in range(10):
def list0():
return x
li.append(list0)

r = list0()
print(r)
print(li[0]())

IO多路复用
概述
select,poll,epoll
监听socket对象内部是否变化了
是么时候发生变化 链接或者收发消息
服务器端的对象发生变化 -->表示有新链接
sk对象变化: 有新的链接
conn变化: 要收发消息了


多线程,多进程
1. 一个应用程序,可以有多进程,多线程
2. 默认是单进程 单线程
3.单进程,多线程

单进程,多线程使用方式:
IO操作,不占用CPU

多进程:计算性操作,
4.GIL,全局解释器锁
---> 多线程 多进程 提高并发
IO密集型:多线程
计算密集型:多进程


转:https://www.cnblogs.com/bigjerry/p/5673589.html



推荐阅读
  • 网络编程:其实就是在学socketsocket是什么?翻译过来称为套接字是对底层的TCPIPUDP等网络协议进行封装使得上层的应用程序开发者,不用直接接触这对复杂,丑陋的协议在程序 ... [详细]
  • JavaScript简介及语言特点
    本文介绍了JavaScript的起源和发展历程,以及其在前端验证和服务器端开发中的应用。同时,还介绍了ECMAScript标准、DOM对象和BOM对象的作用及特点。最后,对JavaScript作为解释型语言和编译型语言的区别进行了说明。 ... [详细]
  • 本文介绍了RPC框架Thrift的安装环境变量配置与第一个实例,讲解了RPC的概念以及如何解决跨语言、c++客户端、web服务端、远程调用等需求。Thrift开发方便上手快,性能和稳定性也不错,适合初学者学习和使用。 ... [详细]
  • Unity3D引擎的体系结构和功能详解
    本文详细介绍了Unity3D引擎的体系结构和功能。Unity3D是一个屡获殊荣的工具,用于创建交互式3D应用程序。它由游戏引擎和编辑器组成,支持C#、Boo和JavaScript脚本编程。该引擎涵盖了声音、图形、物理和网络功能等主题。Unity编辑器具有多语言脚本编辑器和预制装配系统等特点。本文还介绍了Unity的许可证情况。Unity基本功能有限的免费,适用于PC、MAC和Web开发。其他平台或完整的功能集需要购买许可证。 ... [详细]
  • 本文介绍了lua语言中闭包的特性及其在模式匹配、日期处理、编译和模块化等方面的应用。lua中的闭包是严格遵循词法定界的第一类值,函数可以作为变量自由传递,也可以作为参数传递给其他函数。这些特性使得lua语言具有极大的灵活性,为程序开发带来了便利。 ... [详细]
  • 本文介绍了Python高级网络编程及TCP/IP协议簇的OSI七层模型。首先简单介绍了七层模型的各层及其封装解封装过程。然后讨论了程序开发中涉及到的网络通信内容,主要包括TCP协议、UDP协议和IPV4协议。最后还介绍了socket编程、聊天socket实现、远程执行命令、上传文件、socketserver及其源码分析等相关内容。 ... [详细]
  • 本文介绍了在开发Android新闻App时,搭建本地服务器的步骤。通过使用XAMPP软件,可以一键式搭建起开发环境,包括Apache、MySQL、PHP、PERL。在本地服务器上新建数据库和表,并设置相应的属性。最后,给出了创建new表的SQL语句。这个教程适合初学者参考。 ... [详细]
  • 本文介绍了使用AJAX的POST请求实现数据修改功能的方法。通过ajax-post技术,可以实现在输入某个id后,通过ajax技术调用post.jsp修改具有该id记录的姓名的值。文章还提到了AJAX的概念和作用,以及使用async参数和open()方法的注意事项。同时强调了不推荐使用async=false的情况,并解释了JavaScript等待服务器响应的机制。 ... [详细]
  • 如何使用Java获取服务器硬件信息和磁盘负载率
    本文介绍了使用Java编程语言获取服务器硬件信息和磁盘负载率的方法。首先在远程服务器上搭建一个支持服务端语言的HTTP服务,并获取服务器的磁盘信息,并将结果输出。然后在本地使用JS编写一个AJAX脚本,远程请求服务端的程序,得到结果并展示给用户。其中还介绍了如何提取硬盘序列号的方法。 ... [详细]
  • 本文介绍了C#中数据集DataSet对象的使用及相关方法详解,包括DataSet对象的概述、与数据关系对象的互联、Rows集合和Columns集合的组成,以及DataSet对象常用的方法之一——Merge方法的使用。通过本文的阅读,读者可以了解到DataSet对象在C#中的重要性和使用方法。 ... [详细]
  • 计算机存储系统的层次结构及其优势
    本文介绍了计算机存储系统的层次结构,包括高速缓存、主存储器和辅助存储器三个层次。通过分层存储数据可以提高程序的执行效率。计算机存储系统的层次结构将各种不同存储容量、存取速度和价格的存储器有机组合成整体,形成可寻址存储空间比主存储器空间大得多的存储整体。由于辅助存储器容量大、价格低,使得整体存储系统的平均价格降低。同时,高速缓存的存取速度可以和CPU的工作速度相匹配,进一步提高程序执行效率。 ... [详细]
  • python笔记socket编程
    socket编程osi七层模型socketSocket是应用层与TCPIP协议族通信的中间软件抽象层,它是一组接口。在设计模式中,Socket其实就是一 ... [详细]
  • python3+tkinter实践历程(四)——模仿CRT完成基于socket通信与tkinter的TCP串口客户端
    python3tkinter实践历程(四)——基于socket通信与tkinter的TCP串口客户端(仿CRT)文章目录系列文章目录分享背景制作背景最终功能工具截图展示代码详解系列 ... [详细]
  • iwanttowriteasimpleAppforme(Android).Forthisitisnecessarythattheservercansenddat ... [详细]
  • python图书管理系统类_Python标准库socketserver使用线程混入实现异步TCP服务器
    推荐图书:《Python程序设计开发宝典》,ISBN:978-7-302-47210-0,董付国,清华大学出版 ... [详细]
author-avatar
乐乐>Witt
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有