美文网首页
python线程池共享数据

python线程池共享数据

作者: 金色的清晨 | 来源:发表于2016-11-22 16:34 被阅读0次

由于pyton process不共享内存,如果需要共享数据,需要采用它只有的Value或者Manager方式

#!/usr/env python
import multiprocessing as mp
from multiprocessing import Value, Array
import threading
import time
import pdb
 
def init(args):
    ''' store the counter for later use '''
    global counter
    counter = args

def run():
    global counter
    for i in range(0, 3):
        time.sleep(1);
        with counter.get_lock():
            counter.value += 1
        print counter.value

if __name__ == "__main__":
    counter = Value('i', 0)
    pool = mp.Pool(processes = 5,initializer = init, initargs = (counter, ))
    print "I am set counter:%s" % (counter.value)
    for i in range(0, 10):
        pdb.set_trace()
        res = pool.apply_async(run, ())
    pool.close()
    pool.join()
    print "I am set counter:%s" % (counter.value)

相关文章

  • python线程池共享数据

    由于pyton process不共享内存,如果需要共享数据,需要采用它只有的Value或者Manager方式

  • 享元模式

    简介 缓存共享对象,复用共享对象,比如各种池化操作,数据库连接池缓存连接,线程池缓存线程等等。 享元模式样...

  • 享元模式

    共享元数据 连接池、线程池、常量池思想、java的string都用的享元模式

  • [Python系列]Python多线程

    背景:说到多线程,我们会想到的是:异步编程、同步(锁)、共享变量、线程池等等,那么Python里面多线程是如何实现...

  • Tomcat server.xml优化

    1. 使用线程池处理HTTP请求 name:共享线程池的名字。这是Connector为了共享线程池要引用的名字,该...

  • Python多线程爬取王者荣耀COS小姐姐图片集

    多线程爬取数据,主要是用Python的线程池ThreadPoolExecutor。主要代码如下: 爬取到的资源如下...

  • 京东Java高级面试--摘录

    1.Java线程池的实现原理 2.线程是否可以共享。线程池如何实现线程共享的。 3.JVM的内存结构(主要是画Mo...

  • 线程优先级队列

    Queue模块可以用来进行线程间的通信,让各个线程之间共享数据Python的Queue模块提供了同步、线程安全的队...

  • 线程同步

    线程的同步 当一个线程a在操作共享数据的时候,其他线程不能参与进来,直到线程a操作完共享数据,其他线程才能操作共享...

  • 线程安全问题产生的原因

    线程安全问题产生的原因:1,多个线程在操作共享的数据。2,操作共享数据的线程代码有多条。 当一个线程在操作共享数据...

网友评论

      本文标题:python线程池共享数据

      本文链接:https://www.haomeiwen.com/subject/xazppttx.html