网络编程,线程,多线程
1.网络编程
1.IP:
插上网线,路由器或交换机中的DHCP服务就会自动分配IP地址
IPv4: 00000000.00000000.00000000.00000000
0-255 0-255 0-255 0-255
IPv6: 00000000.00000000.00000000.00000000.00000000.00000000
2.子网掩码:
IP: 192.168.13.150 四个点分的十进制表示
子网掩码: 255.255.255.0 将挡住的IP位数作为网段,未挡住的部分作为可变的值
3.网关IP:路由器接口处,192.168.13.1
4.局域网,广域网,城域网
5.广播,单播,广播风暴,arp协议
6.DNS:
网络连接:域名解析,连接:sk.connect()
本地DNS:C:\Windows\System32\drivers\etc\hosts
DNS服务器:全球顶级DNS服务器有13台
2.线程
在多线程的操作系统中,通常是在一个进程中包括多个线程,每个线程都是作为利用CPU的基本单位,是话费最小开销的实体,线程具有以下属性:
1.轻型实体
线程中的实体基本上不拥有系统资源,只是有一点是必不可少的,能保证独立运行的资源.
线程的实体包括程序,数据和TCB.线程是动态概念,它的动态特性由线程控制块TCB(Thread Control Block)描述
2.独立调度和分派的基本单位
在多线程OS中,线程是能独立运行的基本单位,因而也是独立调度和分派的基本单位.由于线程很"轻",故线程的切换非常迅速且开销小(在同一进程中的)
3.共享进程资源
线程在同一进程中的各个线程,都可以共享该进程所拥有的资源
4.可并发执行
在一个进程中的多个线程之间,可以并发执行,甚至允许在一个进程中所有线程都能并发执行,同样,不同进程中的线程也能并发执行,充分利用和发挥了处理机与外围设备并行工作的能力.
线程的创建:
1 import time 2 import threading 3 4 def task(): 5 for i in range(5): 6 print(i) 7 time.sleep(1) 8 9 t = threading.Thread(target=task) 10 t.start()
多线程:
1 import time 2 import threading 3 4 def task(): 5 for i in range(5): 6 print(i) 7 time.sleep(1) 8 9 def play(): 10 print(111) 11 12 def func(): 13 print(222) 14 15 t1 = threading.Thread(target=task) 16 t1.start() 17 t2 = threading.Thread(target=play) 18 t2.start() 19 t3 = threading.Thread(target=func) 20 t3.start()