#创建线程:
# import os
# import time
# from threading import Thread
#
# def func(num):
# print(num*num)
# print('子线程',os.getpid()) #各个线程包括主线程的pid都是一个。
#
# def func2():
# print('子线程2',os.getpid())
#
# def func3():
# print('子线程3',os.getpid())
#
# t = Thread(target=func,args=(5,))#线程不需要执行main方法,不涉及到重读代码问题。
# t.start()
# Thread(target=func2).start()
# print('主线程',os.getpid())
# print('主线程结束的倒数第一句')#不管最后一句是不是开启子线程,都等到所有子线程结束之后主线程才结束。回收资源。
#利用多线程实现socket多人通信,由于切换速度快所以比用进程实现更快:
# import socket
# from threading import Thread
#
# def com(conn):
# while 1:
# conn.send(b'hello')
# msg_r = conn.recv(1024).decode('utf-8')
# print(msg_r)
#
# sk = socket.socket()
# sk.bind(('127.0.0.1',8090))
# sk.listen(5)
# while 1:
# conn,addr = sk.accept() #循环接收client端的连接。没有则阻塞。
# Thread(target=com,args=(conn,)).start() #每来一个client创建并开启一个子线程。
# import time
# from threading import Thread
#
# def func():
# time.sleep(2)
# print('子进程1?2?3?')
#
# def func1(): #线程间是并发的。
# for i in range(10):
# print('第三个子进程')
# time.sleep(0.5)
#
#
# Thread(target=func).start()
# Thread(target=func).start()
# Thread(target=func1).start()
#
# time.sleep(1)
# print('in main1') #子线程与主线程是并发的,同时执行的。
# time.sleep(1)
# print('in main2')