• python多线程,多进程


    线程是公用内存,进程内存相互独立

    python多线程只能是一个cpu,java可以将多个线程平均分配到其他cpu上

    以核为单位,所以GIL(全局锁,保证线程安全,数据被安全读取)最小只能控制一个核,很多人说python是假并发,因为一个核只能跑一个线程,后来有了多进程,可以利用多个cpu处理,但是缺点是耗费资源(因为开启一个进程就会开辟一个内存空间);进程相互通信。

    调用方法使用多线程

    一、多线程并发:

    #!/usr/bin/env python
    #-*- coding:utf-8 -*-
    import threading
    import time
    def run(num):
      print 'Hi,I am the thread',num
      time.sleep(1)
    for i in range(20):
      t = threading.Thread(target=run,args=(i,))
      t.start()

    同一时间运行run函数20次

    二、多线程,每个线程都不会再同一时间运行

    #!/usr/bin/env python
    #-*- coding:utf-8 -*-
    import threading
    import time
    def run(num):
      print 'Hi,I am the thread',num
      time.sleep(1)
    for i in range(20):
    t = threading.Thread(target=run,args=(i,))
      t.start()
      t.join()  #每个线程关系都比较紧密,执行完一个线程在执行下一个,所以会有等待时间 

    继承方法使用多线程多并发

    import threading
    import time
    class MyThread(threading.Thread):
      def __init__(self,name):
        threading.Thread.__init__(self)
        self.name = name

      def run(self):
        print 'Hi,i am thread',self.name
        time.sleep(2)

    for i in range(10):
      t = MyThread(i)
        t.start()

  • 相关阅读:
    vertical-align:middle 垂直居中无效的原因
    meta标签的使用
    异常重试框架Spring Retry实践
    springboot 整合retry(重试机制)
    Centos7-Docker1.12开启守护进程(远程调用)
    Centos7安装docker与docker-compose
    Centos 下 Jenkins2.6 + Git + Maven Shell一件部署与备份
    Docker实战
    利用 Nginx 实现限流
    Feign拦截器应用 (F版)
  • 原文地址:https://www.cnblogs.com/i1991/p/6270226.html
Copyright © 2020-2023  润新知