Найти - Пользователи
Полная версия: Как сделать скрипт "thread-save" ?
Начало » Python для новичков » Как сделать скрипт "thread-save" ?
1
Bdfy1
есть скрипт:
import os, sys, time
from threading import Thread
from threading import currentThread

import SimpleXMLRPCServer

servAddr = ("localhost", 8000)

serv = SimpleXMLRPCServer.SimpleXMLRPCServer(servAddr)

tt = []

import SimpleXMLRPCServer

class myThread(Thread):

def __init__ (self,p):
self.p = p
Thread.__init__(self)

def run (self):
t = currentThread()
while 1:
n = random.random()
tt[self.p] = self.p + '!!!'
time.sleep(n)


def rn():
mythreads = []
for p in (1,2,3):
t = myThread(p)
mythreads.append(t)
t.start()

return 1
def test():
return tt
serv.register_function(rn)
serv.register_function(test)
serv.register_introspection_functions()
python multithreading thread-safety

если я правильно понимаю нужно лочить tt на момент добавления в него информации ? В tt хочется хранить информацию по всем thread типа статуса. Или есть другой более красивый способ ?
Андрей Светлов
Вот в данном конкретном случае присвоение значения элементу списка - атомарная операция
o7412369815963
>если я правильно понимаю нужно лочить tt на момент добавления в него информации ?
конкретно в данном примере лочить не надо, имхо.
только надо tt инициализировать: tt = *4
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB