Hi,
Thank you Christoph.
I still have another question. If we are using commands.getoutput() function
inside the run() function then how do we handle the processes. Because this
senario again hangs the Application Server.
Examples:
from ExamplePage import ExamplePage
from time import *
import commands
from threading import Thread, Event
class MyThread(Thread):
def __init__(self, interval, id):
Thread.__init__(self)
self.interval = interval
self.id = id
self.time = None
self.stop_event = Event()
def run(self):
#while not self.stop_event.isSet():
#self.time = ctime(time())
result = commands.getoutput("pwd") # if I change this
with result
= "Hello World" the whole program works fine but with this
command
it again hangs the Application Server. I think it
creates another sub process to run
commands
#print "thread", self.id, "done at", self.time
print result
#self.stop_event.wait(self.interval)
def stop(self):
print "thread", self.id, "shutdown"
self.stop_event.set()
self.join(1)
my_thread = []
for i in range(2):
my_thread.append(MyThread(2, i))
from WebKit.AppServer import globalAppServer
for k in my_thread:
globalAppServer.application().addShutDownHandler(k.stop)
for j in my_thread:
j.start()
for k in my_thread:
k.join()
for j in my_thread:
j.stop()
class ShowTime(ExamplePage):
def writeContent(self):
self.write('<h1>Thread Test</h1>')
for k in my_thread:
self.write('<h2>Thread Number 'k' is executing </h2>')
Thanks in Advance.
Best Regards.....
Salman Toor.
On 1/13/07, Christoph Zwerschke <[EMAIL PROTECTED]> wrote:
Salman Toor wrote:
> What is the proper way of using multi threaded application within
WebKit.
>
> for example:
>
> # define a class that subclasses Thread
> class showTime(threading.Thread):
>
> # define instance constructor
> def __init__(self,interval,id):
> self.w = interval
> self.id = id
> threading.Thread.__init__(self) # we are required to this
>
> # define run method (body of the thread)
> def run(self):
> time.sleep(self.w)
> print "thread", self.id, "done at", time.ctime(time.time())
>
> how do i start the threads so that it can finish successfully and i
> can shutdown my server and can restart it.
Hi Salman,
here is a simple example servlet. The thread is started when the servlet
is first called and stopped when the AppServer stops.
---------------------------------------------------------------
from ExamplePage import ExamplePage
from time import *
from threading import Thread, Event
class MyThread(Thread):
def __init__(self, interval, id):
Thread.__init__(self)
self.interval = interval
self.id = id
self.time = None
self.stop_event = Event()
def run(self):
while not self.stop_event.isSet():
self.time = ctime(time())
print "thread", self.id, "done at", self.time
self.stop_event.wait(self.interval)
def stop(self):
print "thread", self.id, "shutdown"
self.stop_event.set()
self.join(1)
my_thread = MyThread(2, 4711)
from WebKit.AppServer import globalAppServer
globalAppServer.application().addShutDownHandler(my_thread.stop)
my_thread.start()
class ShowTime(ExamplePage):
def writeContent(self):
self.write('<h1>Thread Test</h1>')
self.write('<h2>Last executed at: ', my_thread.time, '</h2>')
---------------------------------------------------------------
Hope that helps.
-- Christoph
-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share
your
opinions on IT & business topics through brief surveys - and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________
Webware-discuss mailing list
Webware-discuss@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/webware-discuss
-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys - and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________
Webware-discuss mailing list
Webware-discuss@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/webware-discuss