• 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()

  • 相关阅读:
    面向对象的设计模式2
    数据结构
    算法题目1
    5.7(1) 反射
    hashMap原理(java8)
    6.1 接口
    18.1 线程
    13.2 具体的集合
    scrapy(2)——scrapy爬取新浪微博(单机版)
    5.1 类、超类和子类
  • 原文地址:https://www.cnblogs.com/i1991/p/6270226.html
Copyright © 2020-2023  润新知