Python-并发

thread类

# 签名

1

def __init__(self, group=None, target=None, name=None, args=(), kwargs=None*, daemon=None)

  • target: 线程调用的对象,就是目标函数.
  • name: 为线程起个名字.
  • args: 为目标函数传递实参, 元组.
  • kwargs: 为目标函数关键字传参, 字典.

线程启动

import threading

  • 通过threading.Thread创建一个线程对象,target是目标函数,name可以指定名称.
  • 但是线程没有启动,需要调用start方法.
  • 线程会执行函数,是因为线程中就是执行代码的,而最简单的封装就是函数,所以还是函数调用.
  • 函数执行完,线程也会随之退出.
def worker():
 
    print("I'm working")
 
    print("Finished")
 
  
 
t = threading.Thread(target=worker, name='worker')  # 线程对象.
 
t.start()

如果不让线程退出,或者让线程一直工作: 函数内部使用while循环.
 

import threading
 
import time
 
def worker():
 
    while True:
 
        time.sleep(1)
 
        print("I'm work")
 
    print('Finished')
 
  
 
t = threading.Thread(target=worker, name='worker')  # 线程对象.
 
t.start()   # 启动.

线程退出

python没有提供线程退出的方法,在下面情况时会退出:

  • 线程函数内语句执行完毕.
  • 线程函数中抛出未处理的异常.
import threading
 
import time 
 
  
 
def worker():
 
    count = 0
 
    while True:
 
        if (count > 5):
 
            raise RuntimeError()
 
            # return
 
        time.sleep(1)
 
        print("I'm working")
 
        count += 1
 
t = threading.Thread(target=worker, name='worker')  # 线程对象.
 
t.start()  # 启动.
 
  
 
print("==End==")

python的线程没有优先级,没有线程组的概念,也不能被销毁、停止、挂起,自然也没有恢复、中断.

线程的传参​​​​​​​

    

import threading
 
import time
 
  
 
def add(x, y):
 
    print('{} + {} = {}'.format(x, y, x + y, threading.current_thread()))
 
  
 
thread1 = threading.Thread(target=add, name='add', args=(4, 5))  # 线程对象.
 
thread1.start()  # 启动.
 
time.sleep(2)
 
  
 
thread2 = threading.Thread(target=add, name='add',args=(5, ), kwargs={'y': 4})  # 线程对象.
 
thread2.start()  # 启动.
 
time.sleep(2)
 
  
 
thread3 = threading.Thread(target=add, name='add', kwargs={'x': 4, 'y': 5})  # 线程对象.
 
thread3.start()  # 启动.

线程传参和函数传参没什么区别,本质上就是函数传参.

threading的属性和方法

current_thread()  # 返回当前线程对象.

main_thread()  # 返回主线程对象.

active_count()  # 当前处于alive状态的线程个数.

enumerate()  # 返回所有活着的线程的列表,不包括已经终止的线程和未开始的线程.

get_ident()  # 返回当前线程ID,非0整数.

 

1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看REAdMe.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看REAdMe.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看READme.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 、 1资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看READmE.文件(md如有),本项目仅用作交流学习参考,请切勿用于商业用途。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。
python-UDP是指在Python编程语言中使用UDP协议进行网络通信。UDP是一种无连接的传输层协议,不需要建立连接即可发送和接收数据。与TCP相比,UDP的效率更高,但也不可靠,容易丢失数据。使用UDP的常见服务有DNS和FTP等。在Python中,可以使用socketserver模块实现UDP传输协议的并发通信。通过创建UDP报头并指定接收端的IP和端口信息,可以使用sendto()方法发送数据,recvfrom()方法接收数据。在使用recvfrom()方法时,它是阻塞的,每次接收一定数量的数据,若发送的数据超过接收的数量,就会丢失数据。因此,UDP不会出现数据粘包的情况,但也需要注意数据的丢失问题。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [python-UDP协议](https://blog.csdn.net/qq_48985780/article/details/121877448)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"] - *2* *3* [Python - UDP通信](https://blog.csdn.net/weixin_39940253/article/details/110761121)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值