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()
  • 相关阅读:
    Adapter 适配器模式
    词法分析器的作用
    文法、语言、正则表达式
    基于Windows的套接字相关函数及示例
    迭代器和生成器
    反射的使用
    hasattr、getattr、setattr反射
    socket建立tcp、udp链接
    异常处理
    描述符——类型检测,待补充……
  • 原文地址:https://www.cnblogs.com/tangpg/p/10615545.html
Copyright © 2011-2022 走看看