随笔分类 -  Python网络编程

8.Python网络编程_多线程死锁
摘要:死锁:指两个或两个以上的线程在执行过程中,由于竞争资源或者由于彼此通信而造成的一种阻塞的现象,若无外力作用,它们都将无法推进下去。此时称系统处于死锁状态或系统产生了死锁,这些永远在互相等待的进程称为死锁进程。 此程序的两个线程会因为互相等待对方的互斥锁而陷入等待,最后由于主线程执行完毕而结束了各个子 阅读全文
posted @ 2019-11-30 18:23 Chenjin123 阅读(181) 评论(0) 推荐(0)
7.Python网络编程_多线程共享全局变量问题
摘要:Python多线程支持全局变量的共享操作,但是它存在很多问题,先来看以下程序,该程序理论上执行完毕后全局变量g_num的值应该是2000000,但是在实际运行中,结果不足理论值 1 import threading 2 import time 3 4 #定义一个全局变量 5 g_num=0 6 7 阅读全文
posted @ 2019-11-30 16:47 Chenjin123 阅读(231) 评论(0) 推荐(0)
6.Python网络编程_全局变量基础
摘要:变量作用域: 一般在函数体外定义的变量成为全局变量,在函数内部定义的变量称为局部变量。全局变量所有作用域都可用,局部变量只能在本函数可用,变量的使用顺序是,局部变量 > 全局变量, 也就是说:优先使用局部变量,那么问题来了, 如果想在函数内使用全局变量,或改变全局变量的值, 应该怎么做呢? glob 阅读全文
posted @ 2019-11-30 15:26 Chenjin123 阅读(188) 评论(0) 推荐(0)
5.Python网络编程_通过继承实现多线程
摘要:1 import threading 2 import time 3 4 #继承形式的多线程,适合于程序比较复杂的情况 5 class MyThread(threading.Thread): 6 #t.start()会调用run函数,所以必须有个run方法 7 #线程类内的其他方法除非run函数内部 阅读全文
posted @ 2019-11-30 14:47 Chenjin123 阅读(202) 评论(0) 推荐(0)
4.Python网络编程_一般多线程创建步骤
摘要:1 #该程序使用命令行执行,IDE执行会有其他线程附加 2 import threading 3 import time 4 5 #初始化一个线程 6 #t=threading.Thread(target=func) #func为函数名 7 #创建启动线程 8 #t.start() 9 #获取当前进 阅读全文
posted @ 2019-11-26 11:14 Chenjin123 阅读(212) 评论(0) 推荐(0)
3.Python网络编程_多任务问题抛出
摘要:1 #单线程程序 2 import time 3 4 def sing(): 5 """唱歌5秒钟""" 6 for i in range(5): 7 print(" 正在唱:千里之外 ") 8 time.sleep(1) 9 10 def dance(): 11 """跳舞5秒钟""" 12 fo 阅读全文
posted @ 2019-11-26 10:22 Chenjin123 阅读(187) 评论(0) 推荐(0)
2.Python网络编程_TCP(简略版)
摘要:TCP监听套接字: 当新的客户端请求连接时,服务器端监听套接字收到消息,会分配一个新的套接字对应于客户端(新socket包括四部分:源IP、源端口号、目的IP、目的端口号)用于接收客户端的消息,仔细观察可以看出对于不同的客户端每个新产生的套接字的源IP和源端口号都是一样的,目的IP和目的端口号则不同 阅读全文
posted @ 2019-11-26 08:56 Chenjin123 阅读(315) 评论(0) 推荐(0)
1.Python网络编程_UDP(简略版)
摘要:1 # -*- coding: utf-8 -*- 2 #2019-11-24 3 4 import socket 5 6 def recv(): 7 udp_socket=socket.socket(socket.AF_INET,socket.SOCK_DGRAM) 8 #socket.AF_IN 阅读全文
posted @ 2019-11-24 10:08 Chenjin123 阅读(196) 评论(0) 推荐(0)