多线程编程
2021/7/3 11:21:13
本文主要是介绍多线程编程,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
【●】多线程编程
一、多线程工作原理
1.多线程任务的工作特点
● 他们本质上就是异步的,需要有多个并发事务。
● 各个事务的运行顺序可以是不确定的,随机的,不可预测的。
● 这样的编程任务可以被分成多个执行流,每个流都有一个要完成的目标。
● 根据应用的不同,这些子任务可能都要计算出一个中间结果,用于合并得到最后的结果。
2.什么是进程
进程就是运行中的程序。
进程在运行过程中独享系统资源 CPU 内存。
多个进程运行时是串行。
3.什么是线程
线程是进程中最小单元。
一个进程里可以包含多个线程。
多个线程同时运行时,共享资源 是并行执行。
二、多线程编程
1.多线程相关模块
●thread和threading模块允许程序员创建和管理线程。
●thread模块提供了基本的线程和锁的支持,而threading提供了更高级别、功能更强的线程管理功能。
[root@dc python]# vim thread.py
import threading # 导入多线程模块
import time
def say_hello():
for x in range(10):
print("勇敢牛牛 不怕困难")
time.sleep(1)
def say_world():
for y in range(10):
print("天王盖地虎 宝塔镇河妖")
time.sleep(1)
t1 = threading.Thread(target=say_hello)
t2 = threading.Thread(target=say_world)
t1.start() # 启动 t1 线程
t2.start()
[root@dc python]# python3 thread.py
执行脚本后可以显示所在网络 在线主机的ip 及不在线主机的ip通过多线程的方式编程。
格式:
192.168.4.21 up
192.168.4.25 down
[root@dc python]# vim ping.py
import subprocess #导入模块
import threading # 导入多线程模块
def ping(host_ip): #定义检测主机是否在线的函数ping
r = subprocess.run('ping -c2 %s &> /dev/null' % host_ip, shell=True)
if r.returncode == 0:
print(host_ip, ': up')
else:
print(host_ip, ': down')
#ping('192.168.4.100') #执行函数时给函数传要检测的ip地址
if __name__ == '__main__':
#以循环的方式将所要检测的ip地址传给函数
for x in range(1, 255):
ipv4 = '192.168.1.%d' % x
ping(ipv4)
#以多线程的方式执行ping()函数
for x in range(1,101):
ipv4 = '192.168.4.%d' % x
# 创建一个线程,执行ping 函数
t = threading.Thread(target=ping, args=(ipv4,))
t.start()
[root@dc python]# python3 ping.py
这篇关于多线程编程的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-10-05小米13T Pro系统合集:性能与摄影的极致融合,值得你升级的系统ROM
- 2024-10-01基于Python+Vue开发的医院门诊预约挂号系统
- 2024-10-01基于Python+Vue开发的旅游景区管理系统
- 2024-10-01RestfulAPI入门指南:打造简单易懂的API接口
- 2024-10-01初学者指南:了解和使用Server Action
- 2024-10-01Server Component入门指南:搭建与配置详解
- 2024-10-01React 中使用 useRequest 实现数据请求
- 2024-10-01使用 golang 将ETH账户的资产平均分散到其他账户
- 2024-10-01JWT用户校验课程:从入门到实践
- 2024-10-01Server Component课程入门指南