1、
# coding : UTF-8
import multiprocessing # 导入多进程的开发模块
def send_data(conn, data): # 数据的发送
conn.send(["小李老师", "沐言优拓", data]) # 进行列表数据的发送
def receive_data(conn): # 数据接收
print("【接收数据】%s" % conn.recv()) # 接收管道发送来的数据
def main(): # 主函数
conn_send, conn_recv = multiprocessing.Pipe() # 管道分为接收和发送
# 创建两个子进程,同时将两个管道的对象传递到不同的进程处理函数之中
process_send = multiprocessing.Process(target=send_data, args=(conn_send, "www.yootk.com"))
process_receive = multiprocessing.Process(target=receive_data, args=(conn_recv,))
process_send.start() # 启动进程
process_receive.start() # 启动进程
if __name__ == "__main__": # 判断程序执行名称
main() # 调用主函数
2、
# coding : UTF-8
import multiprocessing, time # 导入多进程的开发模块
def put_worker(queue): # 队列生产者
for item in range(50): # 生产50次数据
time.sleep(1) # 延迟1秒的时间
print("【%s】生产数据,item = %s" % (multiprocessing.current_process().name, item))
queue.put("item = %s" % item)
def get_worker(queue): # 队列消费者
while True: # 持续消费
try:
print("〖%s〗消费数据:%s" % (multiprocessing.current_process().name,
queue.get(block=True, timeout=2)))
except:
pass
def main(): # 主函数
queue = multiprocessing.Queue() # 创建进程延迟队列
producer_process = multiprocessing.Process(target=put_worker, name="生产者进程", args=(queue,)) # 子进程
consumer_process = multiprocessing.Process(target=get_worker, name="消费者进程", args=(queue,)) # 子进程
producer_process.start() # 进程启动
consumer_process.start() # 进程启动
producer_process.join() # 生产者强制执行完毕
consumer_process.join() # 消费者强制执行完毕
if __name__ == "__main__": # 判断程序执行名称
main() # 调用主函数
3、
# coding : UTF-8
import subprocess # 导入多进程的开发模块
def main(): # 主函数
subprocess.call("dir /a", shell=True) # 允许执行Shell程序
if __name__ == "__main__": # 判断程序执行名称
main() # 调用主函数
4、
# coding : UTF-8
import subprocess # 导入多进程的开发模块
def main(): # 主函数
subprocess.Popen("md yootk", shell=True, cwd="e:") # 设置了命令的执行路径
if __name__ == "__main__": # 判断程序执行名称
main() # 调用主函数
5、
# coding : UTF-8
import subprocess, time # 导入多进程的开发模块
def main(): # 主函数
notepad_process = subprocess.Popen("notepad.exe", shell=True) # 此时的命令可以直接执行
time.sleep(3) # 让进程运行3秒
notepad_process.kill() # 销毁自己的进程
if __name__ == "__main__": # 判断程序执行名称
main() # 调用主函数
6、
# coding : UTF-8
import subprocess, time # 导入多进程的开发模块
def main(): # 主函数
open_process = subprocess.Popen("python.exe", stdin=subprocess.PIPE,
stdout=subprocess.PIPE, stderr=subprocess.PIPE) # 和命令交互
# 通过stdin实现命令的输入处理
open_process.stdin.write("print('沐言优拓:www.yootk.com')\n".encode()) # 命令输入
open_process.stdin.write("name = '小李老师(江湖爆称)'\n".encode()) # 命令输入
open_process.stdin.write("print('课程讲师:%s' % name)\n".encode()) # 命令输入
open_process.stdin.write("print(10 + 20)\n".encode()) # 命令输入
open_process.stdin.write("'No.' + 1\n".encode()) # 命令输入
open_process.stdin.close() # 关闭输入
# 命令输入完成之后一定可以返回有一些数据内容,这个时候需要进行接收
cmd_out = open_process.stdout.read() # 读取信息返回
open_process.stdout.close()
print(cmd_out.decode())
cmd_error = open_process.stderr.read()
open_process.stderr.close()
print(cmd_error.decode())
if __name__ == "__main__": # 判断程序执行名称
main() # 调用主函数
7、
# coding : UTF-8
import multiprocessing, time # 导入多进程的开发模块
def worker(list, item): # 进程的处理函数
list.append("【%s】item = %s" % (multiprocessing.current_process().name, item)) # 列表存储
def main(): # 主函数
manager = multiprocessing.Manager() # 创建共享数据对象
main_item = "【%s】www.yootk.com" % multiprocessing.current_process().name
mgr_list = manager.list([main_item]) # 根据一个序列来创建列表
job_process = [multiprocessing.Process(target=worker, args=(mgr_list, item,), name="数据操作进程-%s" % item)
for item in range(3)] # 创建进程列表
for process in job_process: # 启动列表中的所有进程
process.start()
for process in job_process: # 所有进程强制执行完毕
process.join()
print("所有进程执行完毕,列表最终数据:%s" % mgr_list)
if __name__ == "__main__": # 判断程序执行名称
main() # 调用主函数
8、
# coding : UTF-8
import multiprocessing, time # 导入多进程的开发模块
def worker(dict, item): # 进程的处理函数
dict.update({multiprocessing.current_process().name:item})
def main(): # 主函数
manager = multiprocessing.Manager() # 创建共享数据对象
main_name = multiprocessing.current_process().name # 主进程名称
main_value = "www.yootk.com"
mgr_dict = manager.dict(main_name=main_value) # 创建一个跨进程的字典
job_process = [multiprocessing.Process(target=worker, args=(mgr_dict, item,), name="数据操作进程-%s" % item)
for item in range(3)] # 创建进程列表
for process in job_process: # 启动列表中的所有进程
process.start()
for process in job_process: # 所有进程强制执行完毕
process.join()
print("所有进程执行完毕,列表最终数据:%s" % mgr_dict)
if __name__ == "__main__": # 判断程序执行名称
main() # 调用主函数