Può lato client python utilizzare i thread?
-
13-09-2019 - |
Domanda
Non ho mai programmato in Python prima, in modo scusare il mio codice. Ho questo script che verrà eseguito in un terminale, ma non riesco a farlo funzionare lato client. Sto facendo funzionare questa applicazione in titanio di Appcelerator. In ogni caso, ho la risoluzione dei problemi e sembra che non sia in esecuzione i fili a tutti. Si tratta di una limitazione? qualcuno sa?
<script type="text/python">
import os
import sys
import Queue
import threading
class FindThread ( threading.Thread ):
def run ( self ):
running = True
while running:
if jobPool.empty():
#print '<< CLOSING THREAD'
running = False
continue
job = jobPool.get()
window.document.getElementById('output').innerHTML += os.path.join(top, name)
if job != None:
dirSearch(job)
jobPool = Queue.Queue ( 0 )
def findPython():
#output = window.document.getElementById('output')
window.document.getElementById('output').innerHTML += "Starting"
dirSearch("/")
# Start 10 threads:
for x in xrange ( 10 ):
#print '>> OPENING THREAD'
FindThread().start()
def dirSearch(top = "."):
import os, stat, types
names = os.listdir(top)
for name in names:
try:
st = os.lstat(os.path.join(top, name))
except os.error:
continue
if stat.S_ISDIR(st.st_mode):
jobPool.put( os.path.join(top, name) )
else:
window.document.getElementById('output').innerHTML += os.path.join(top, name)
window.findPython = findPython
</script>
Soluzione
La risposta, attualmente (Venerdì 19 giugno 2009) è sì, è possibile eseguire le discussioni, ma l'altro che il thread principale può accedere oggetti JavaScript, questo include il DOM. quindi se avete intenzione di aggiornare l'interfaccia utente con un'applicazione threading, questo non è possibile ... ancora. Fino a quando il team di Appcelerator crea una sorta di coda al thread principale, possibile tramite un sistema vincolante.
Si prega di consultare la discussione ai Appcelerator forum .