基于python的多线程编程

由于之前看书的时候,对多线程的调用不怎么了解,借此机会,看了一些资料自己整理了一下

OSI七层模型:
物理层
数据链路层
网络层
传输层
会话层
表示层
应用层

协议分为TCP 、IP协议
现在用得最多的是这两种协议,TCP\IP,IP分管各个电脑终端地址,负责发包(包:就是数据)以块的形式发送,
TCP负责运输数据,保证运输到达不同的IP
至于识别数据是不同IP地址下的端口控制分配给哪个程序使用那部分的数据

socket(family,type[,protocal])
family:套接字家族,AF_UNIX、AF_INET、AF_INET6
type:套接字类型,可根据面向连接还是非连接分为SOCK_STREAM或SOCK_DGRAM
protocol:一般不填,默认为0

利用创建多线程来打印时间戳

#coding=utf-8
#Version:python 3.7.6
#Tool:Pycharm 4.5.4
__date = ' '
__author__ = 'Alexin'

import threading
import time
exitFlag=0

class myThread(threading.Thread):
    def __init__(self,threadID,name,counter):
        threading.Thread.__init__(self)
        self.threadID=threadID
        self.name=name
        self.counter=counter
    def run(self):
        print("Starting"+self.name)
        #获得锁
        threadLock.acquire()
        print(self.name,'获得锁')
        print_time(self.name,self.counter,3)
        print(self.name,"释放锁")
        threadLock.release()    #释放锁
        print("Exiting"+self.name)
def print_time(threadName,delay,counter):
        while counter:
            if exitFlag:
                thread.exit()
            time.sleep(delay)
            print("%s:%s"%(threadName,time.ctime()))
            counter -=1

#创建一个指令锁
threadLock=threading.Lock()

thread=[]
for i in range(0,3):
    thread.append(1)
    thread[i]=myThread(i+1,"Thread-"+str(i),i+1)
    thread[i].start()
#用于主程序直到线程完全执行完毕
for t in thread:
   t.join()
print("Exiting Main Thread")

结果:

StartingThread-0
Thread-0 获得锁
StartingThread-1
StartingThread-2
Thread-0:Tue Mar  3 22:35:09 2020
Thread-0:Tue Mar  3 22:35:10 2020
Thread-0:Tue Mar  3 22:35:11 2020
Thread-0 释放锁
ExitingThread-0
Thread-1 获得锁
Thread-1:Tue Mar  3 22:35:13 2020
Thread-1:Tue Mar  3 22:35:15 2020
Thread-1:Tue Mar  3 22:35:17 2020
Thread-1 释放锁
ExitingThread-1
Thread-2 获得锁
Thread-2:Tue Mar  3 22:35:20 2020
Thread-2:Tue Mar  3 22:35:23 2020
Thread-2:Tue Mar  3 22:35:26 2020
Thread-2 释放锁
ExitingThread-2
Exiting Main Thread

Process finished with exit code -1
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值