python 开启两个线程
时间: 2023-07-03 14:09:39 浏览: 98
开启两个线程可以使用 Python 的 threading 模块来实现,下面是一个简单的示例代码:
```python
import threading
def task1():
# 第一个线程要执行的任务
print('Thread 1 is running')
def task2():
# 第二个线程要执行的任务
print('Thread 2 is running')
# 创建两个线程
t1 = threading.Thread(target=task1)
t2 = threading.Thread(target=task2)
# 启动两个线程
t1.start()
t2.start()
# 等待两个线程执行完毕
t1.join()
t2.join()
print('All threads have finished')
```
在上面的示例代码中,我们首先定义了两个函数 task1 和 task2 分别作为两个线程要执行的任务。然后,我们使用 threading.Thread 类创建了两个线程 t1 和 t2,并将它们的 target 参数分别设置为 task1 和 task2。最后,我们使用 start() 方法启动两个线程,并使用 join() 方法等待两个线程执行完毕。
相关问题
使用python开启两个线程,其中一个线程执行完后需要挂起另一个线程执行完毕
在Python中,你可以使用内置的`threading`模块来创建线程,并利用`join()`方法来控制线程的执行顺序。如果你想让一个线程在执行完毕后暂停另一线程的执行,你可以这样做:
```python
import threading
# 定义两个线程函数
def thread_1():
# 这里是线程1的任务
print("Thread 1 is running")
# 线程1任务完成后
print("Thread 1 finished")
def thread_2():
# 这里是线程2的任务
print("Thread 2 is waiting to start")
# 当线程1执行完毕后,我们调用thread_2.join()
# 这会让当前线程等待thread_1执行结束再继续
thread_1.join()
print("Thread 2 started after Thread 1 finished")
# 创建并启动线程
t1 = threading.Thread(target=thread_1)
t2 = threading.Thread(target=thread_2)
t1.start() # 启动线程1
t2.start() # 线程2一开始并不会立即执行,因为它等待线程1先结束
# 等待线程1完全执行完
t1.join()
print("Both threads have completed.")
```
在这个例子中,当你运行`t1.join()`时,线程2会被阻塞直到线程1执行完毕。然后线程2才会开始执行。
python多线程开启多个tcp连接
在Python中,可以使用`socket`和`threading`模块来开启多个TCP连接。下面是一个简单的示例代码,它使用两个线程分别连接到两个不同的TCP服务器,然后发送一些数据并接收响应:
```python
import socket
import threading
def send_data(sock, data):
sock.sendall(data.encode())
response = sock.recv(1024)
print('Response:', response.decode())
def connect_server(host, port):
with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as sock:
sock.connect((host, port))
print('Connected to', host, port)
send_data(sock, 'Hello, server!')
if __name__ == '__main__':
# 开启两个线程分别连接到两个不同的TCP服务器
t1 = threading.Thread(target=connect_server, args=('localhost', 8000))
t2 = threading.Thread(target=connect_server, args=('localhost', 9000))
t1.start()
t2.start()
t1.join()
t2.join()
```
在这个示例中,`send_data`函数用于向TCP服务器发送数据并接收响应。`connect_server`函数用于与指定的TCP服务器建立连接,并在连接成功后调用`send_data`函数发送数据。`main`函数则开启两个线程分别连接到两个不同的TCP服务器。注意,在这个示例中,我们使用了`with`语句来确保`socket`对象在使用完毕后能够被正确地关闭。
阅读全文