Hallo!
Ich suche nach einer einfachen möglichkeit einen Thread zu sperren.
Sowas wie Lock in Java.
Hintergrund ist:
Ich lasse einen Server immer nach einer gewissen Zeit mehrere RemotePC's scannen (welcher User sich darauf befindet oder welcher PC frei ist)
Dieser Server gibt dann bei einer Anfrage eines Clients die erste freie WorkstationIP an diesen Client zurück.
Problem dabei ist dass der ScanThread nicht ausgelöst werden darf während ein Client eine Anfrage stellt.
Ich hoffe ihr könnt mir helfen.
Thread sperren
Hat doch die Klasse Threading...
http://python.org/doc/2.3.3/lib/module-threading.html
Oder?
mfg
Matthias
http://python.org/doc/2.3.3/lib/module-threading.html
Oder?
mfg
Matthias
Hab das jetzt auch mal probiert aber irgendwie steh ich da auch auf dem Schlauch.
Ich habe folgendes:
Trotzdem sieht meine Ausgabe noch so aus:
An was kann das liegen ??
Grüße
Matthias
Ich habe folgendes:
Code: Alles auswählen
import threading
import time
class OwnThread(threading.Thread):
def __init__(self):
threading.Thread.__init__(self)
print "Thread gestartet"
while (True):
print "ich laufe noch"
time.sleep(0.5)
t = OwnThread()
t.start()
lock = t.Lock()
lock.acquire()
Trotzdem sieht meine Ausgabe noch so aus:
Code: Alles auswählen
ich laufe noch
ich laufe noch
ich laufe noch
ich laufe noch
usw.
An was kann das liegen ??
Grüße
Matthias
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
Ich hätte ein Beispiel:
Naja, das Lock ist im beispiel zwar vollkommen unnötig, aber es funktioniert zumindest.
Code: Alles auswählen
#!/usr/bin/python
# -*- encoding: latin-1 -*-
import threading, time
class OwnThread(threading.Thread):
def __init__(self):
threading.Thread.__init__(self)
self.lock = threading.Lock()
def run(self):
self.lock.acquire()
print "Thread gestartet"
for x in range(10):
print "ich laufe noch"
time.sleep(0.5)
self.lock.release()
t = OwnThread()
t.start()
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice