[Tutor] Python Daemons
Cameron Simpson
cs at cskk.id.au
Tue Aug 1 21:40:20 EDT 2017
On 01Aug2017 14:48, Daniel Bosah <dbosah at buffalo.edu> wrote:
>I'm following an online tutorial about threading. This is the code I've
>used so far:
In addition to the other replies, which mention the general computing "daemon"
notion and the "python-daemon" library which aids making such python programs
into well behaved daemons, I've got a couple of remarks about your code:
[...]
>def threader():
> while True:
> worker = q.get()
> portscan(worker)
> q.task_done
task_done is a method. So "q.task_done()". Your code will parse and run but the
method will not get called; "q.task_done" with no brackets just mentioned the
method without running it (sometimes a program wants to talk about a method or
function but not call it right now).
> t.daemon() = True # want it to be a daemon
The Thread.daemon is a property, not a method. So you set it like this:
t.daemon = True
In the context of a thread, the daemon attribute implies that the daemon is a
"worker" process, which does not need special shutdown. When your program ends,
the Python runtime does not actually terminate until all _non_ damon Threads
have finished. By marking a Thread as a daemon you're saying that its activity
is not important after program exit. This is probably not the case for your
tutorial task.
Like others, I recommend learning Python 3. It is broadly the same language but
it is current.
Cheers,
Cameron Simpson <cs at cskk.id.au> (formerly cs at zip.com.au)
More information about the Tutor
mailing list