zoukankan      html  css  js  c++  java
  • 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()

  • 相关阅读:
    python
    VSCompile
    Oracle学习
    CMD
    JQuery 学习
    单词
    解决Manjaro+win双系统相差8小时
    编辑器使用
    软件安装
    磁盘分区与逻辑卷管理
  • 原文地址:https://www.cnblogs.com/i1991/p/6270226.html
Copyright © 2011-2022 走看看