[code.view]

[top] / python / PyMOTW / threading / threading_local_defaults.py

     #!/usr/bin/env python
     # encoding: utf-8
     #
     # Copyright (c) 2008 Doug Hellmann All rights reserved.
     #
     """Defaults for thread-local values
     """
     #end_pymotw_header
     
     import random
     import threading
     import logging
     
     logging.basicConfig(level=logging.DEBUG,
                         format='(%(threadName)-10s) %(message)s',
                         )
     
     
     def show_value(data):
         try:
             val = data.value
         except AttributeError:
             logging.debug('No value yet')
         else:
             logging.debug('value=%s', val)
     
     def worker(data):
         show_value(data)
         data.value = random.randint(1, 100)
         show_value(data)
     
     class MyLocal(threading.local):
         def __init__(self, value):
             logging.debug('Initializing %r', self)
             self.value = value
     
     local_data = MyLocal(1000)
     show_value(local_data)
     
     for i in range(2):
         t = threading.Thread(target=worker, args=(local_data,))
         t.start()
     

[top] / python / PyMOTW / threading / threading_local_defaults.py

contact | logmethods.com