python实现多线程
时间: 2023-10-04 12:05:54 浏览: 98
Python中实现多线程可以使用内置的threading模块。以下是一个简单的示例代码:
```python
import threading
def print_number():
for i in range(1, 11):
print(i)
def print_letter():
for i in range(ord('A'), ord('K')):
print(chr(i))
thread1 = threading.Thread(target=print_number)
thread2 = threading.Thread(target=print_letter)
thread1.start()
thread2.start()
thread1.join()
thread2.join()
print("Done")
```
在上面的代码中,我们定义了两个函数`print_number`和`print_letter`,分别打印数字1到10和字母A到J。然后我们创建了两个线程,分别执行这两个函数。最后我们使用`join()`方法等待两个线程的执行完成,然后打印出“Done”。
相关问题
Python实现多线程
在Python中,可以使用`threading`模块来实现多线程。具体实现步骤如下:
1.导入`threading`模块
2.定义一个函数作为线程的执行体
3.创建线程对象,将函数作为参数传入
4.启动线程
5.等待线程执行结束
具体代码如下:
```python
import threading
# 定义线程执行体
def thread_func():
print("This is a thread.")
# 创建线程对象
t = threading.Thread(target=thread_func)
# 启动线程
t.start()
# 等待线程执行结束
t.join()
print("Thread finished.")
```
在上面的代码中,我们定义了一个函数`thread_func()`作为线程的执行体。然后,我们创建了一个线程对象`t`,并将`thread_func()`函数作为参数传入。接着,我们启动了线程,等待线程执行结束。最后,我们输出了一条提示信息。
需要注意的是,Python的多线程并不能充分利用多核CPU的优势,因为Python的全局解释器锁(GIL)会限制同一时刻只有一个线程执行Python代码。如果需要充分利用多核CPU,可以考虑使用Python的多进程模块`multiprocessing`。
python实现多线程扫描端口
以下是Python实现多线程扫描端口的示例代码:
```python
import socket
import threading
# 定义扫描函数
def scan_port(ip, port):
try:
# 创建socket对象
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# 设置超时时间
s.settimeout(1)
# 连接目标主机
s.connect((ip, port))
# 输出开放的端口号
print('[+] %d/tcp open' % port)
except:
pass
finally:
# 关闭socket连接
s.close()
# 定义扫描端口的函数
def scan(ip, ports):
# 遍历端口列表
for port in ports:
# 创建线程
t = threading.Thread(target=scan_port, args=(ip, port))
# 启动线程
t.start()
# 主函数
if __name__ == '__main__':
# 定义目标主机IP地址
ip = '127.0.0.1'
# 定义端口列表
ports = [21, 22, 23, 25, 80, 443, 3306, 3389]
# 调用扫描函数
scan(ip, ports)
```