zoukankan      html  css  js  c++  java
  • 并行

     并行需要多个cpu才能实现并行

    一个cpu只能做到并发,多个cpu同时运行多个程序实现并行。

    2个cpu开启两个进程:

    # -*- coding: utf-8 -*-
    import multiprocessing
    import time
    
    
    def now_time():
        return time.asctime(time.localtime(time.time()))
    
    
    # process one
    def run():  # 并行是模拟耗时任务,并发是模拟阻塞  !!
        print('one start:', now_time())
        time.sleep(5)
        print('one end:', now_time())
    
    
    if __name__ == '__main__':
        process = multiprocessing.Process(target=run)
        process.start()
        # process two
        print('two start:', now_time())
        time.sleep(5)
        print('two end:', now_time())

    two start: Thu Mar 28 15:45:14 2019
    one start: Thu Mar 28 15:45:14 2019
    two end: Thu Mar 28 15:45:15 2019
    one end: Thu Mar 28 15:45:19 2019

    多进程实现并行

    # -*- coding: utf-8 -*-
    ''' 多进程实现并发'''
    import socket
    import multiprocessing
    
    
    server = socket.socket()
    server.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) # 释放端口
    server.bind(('', 8888))
    server.listen(1000) # 生成监听套接字
    
    
    def server_recv(conn):
        while True:
            recv_data = conn.recv(1024)
            if recv_data:
                print(recv_data.decode())
                conn.send(recv_data)
            else:
                conn.close()
                break
    
    
    while True:
        conn, addr = server.accept()  # 生成对等套接字
        # 将阻塞的对等套接字存入进程
        process = multiprocessing.Process(target=server_recv, args=(conn, ), daemon=True)
        process.start()
  • 相关阅读:
    iOS证书的使用
    ios设备管理
    矩阵的相关问题(旋转矩阵&螺旋矩阵)
    flex实现多列布局效果&对角线布局
    peerdependencies
    数组和对象遍历方法对比
    async和defer
    Promise.all并发限制
    electron+react开发属于自己的桌面应用
    webpack代码切割
  • 原文地址:https://www.cnblogs.com/tangpg/p/10615545.html
Copyright © 2011-2022 走看看