Hi Leute, gibts eine Möglichkeit, dass thread 1 verhindern kann dass thread 2 aktiv wird? Im thread selber kann ja die Kontrolle abgeben werden mit einen I/O, sleep u.ä. Dake für Tipps, wg
wg wrote:
gibts eine Möglichkeit, dass thread 1 verhindern kann dass thread 2 aktiv wird?
Mit einem entsprechenden Lock, ja. Vinzent. -- The most likely way for the world to be destroyed, most experts agree, is by accident. That's where we come in; we're computer professionals. We cause accidents. -- Nathaniel Borenstein
On 24.09.2012 22:08, Vinzent Hoefler wrote:
wg wrote:
gibts eine Möglichkeit, dass thread 1 verhindern kann dass thread 2 aktiv wird?
Mit einem entsprechenden Lock, ja.
Vinzent.
OK, dazu muss ich thread 2 über lock oder queue steuern. Da ich aber thread 2 an *beliebiger* Stelle von *thread 1* aus anhalten will, kommt ich das so nicht machen. Gibt's eine Möglichkeit, den GIL (von python aus) zu beeinflussen? Und zwar in der Form, daß thread 1 den GIL-State für sich beansprucht. Das C-API hat so eine Funktion: PyGILState_STATE PyGILState_Ensure() Wolf
On 9/25/12 9:34 AM, "wg"
On 24.09.2012 22:08, Vinzent Hoefler wrote:
wg wrote:
gibts eine Möglichkeit, dass thread 1 verhindern kann dass thread 2 aktiv wird?
Mit einem entsprechenden Lock, ja.
Vinzent.
OK, dazu muss ich thread 2 über lock oder queue steuern. Da ich aber thread 2 an *beliebiger* Stelle von *thread 1* aus anhalten will, kommt ich das so nicht machen.
Beliebig gibt's nicht. Wenn der Thread im C-Callstack steht, wird der ausgeführt.
Gibt's eine Möglichkeit, den GIL (von python aus) zu beeinflussen? Und zwar in der Form, daß thread 1 den GIL-State für sich beansprucht. Das C-API hat so eine Funktion: PyGILState_STATE PyGILState_Ensure()
Nichts offizielles, das ist bestenfalls ein hack. Du kannst natürlich versuchen, über ctypes an's GIL zu kommen. Und muss diese Salami-Taktik bei der Problembeschreibung sein? Das beständige Glaskugelwetzen ist anstrengend Diez
participants (3)
-
Diez Roggisch
-
Vinzent Hoefler
-
wg