GIL e hyperthreading

Hernan Foffani hernan en orgmf.com.ar
Mar Mar 30 11:32:06 CEST 2004


Erny escribio:
> me ha despertado curiosidad, pero veo difícil bloquear y desbloquear
> automáticamente el acceso a los atributos o variables de una clase,
> por la sigiuente razón:
> cuando accedemos leemos o accedemos referencias. En este caso, un
> __setattri__ podría bloquear y desbloquear automáticamente el acceso,
> pero en muchos casos, es una estructura, como un diccionario o una
> lista sobre la cual se realizan operaciones. Entiendo que en este
> caso, la solución podrían ser estructuras que se bloquean o
> desbloquean automáticamente.

Puedo equivocarme pero dudo mucho que se implemente algo así en el
lenguaje.

> ... Más interesante, sin embargo, me parece
> marcar, como en Java, que determinados métodos acceden a 'información
> sensible'. Se fuerza entonces que toda la información sensible sea
> accedida a através de métodos del objeto, nunca directamente desde
> fuera (ej. poniendo __ ). Entonces, el call de ese método al empezar
> obtiene el acceso exclusivo, y cuando termine lo suelta.

Claro.  Por supuesto que *siempre* será posible acceder desde ``afuera''
a esos atributos, pero ya sabemos que aqui la politica es "cosechas lo
que siembras".

> siempre que se desee que todos esos métodos tengan un lock común, de
> lo contrario podría agregarse un lock a cada método synchronized.

Lo lógico sería que al menos dos métodos compartan un lock, no? ;-)

> Desde luego, me parecía una interesante extensión a Python. Quizá
> estaría bien tener algo como los atributos de C# y que la librería
> vaya implementando poco a poco una serie de esos atributos.

Eso mismo ya ha sido propuesto en
http://www.python.org/peps/pep-0318.html
y con buenas posibilidades de ser incluido en python 2.4
http://www.python.org/peps/pep-0320.html

Saludos,
-Hernán


------------ próxima parte ------------
_______________________________________________
Python-es mailing list
Python-es en aditel.org
http://listas.aditel.org/listinfo/python-es


Más información sobre la lista de distribución Python-es