Multiple thread program problem
Gary Herron
gherron at digipen.edu
Wed Jun 3 18:02:42 EDT 2015
On 06/03/2015 01:41 PM, Mohan Mohta wrote:
> Hello
> I am trying to create multiple thread through the below program but I am getting an error
>
> #! /usr/bin/python
> import os
> import subprocess
> import thread
> import threading
> from thread import start_new_thread
>
> def proc(f) :
> com1="ssh -B "
> com2=line.strip('\n')
> com3= " uname -a"
> co=str("ssh -B ")+ str(com2) + str(" uname -a")
> subprocess.call(co,shell=True)
> print "----------------------------"
> return
>
> f = open('/tmp/python/1')
> for line in f:
> t=thread.start_new_thread(proc(f),())
You are calling the function f yourself, but what you want here is for
the thread to call f once it's running.
So do
t=thread.start_new_thread(proc, (f,)) # Procedure to call and a
tuple of args for it.
> t.start()
I don't think the thread has a start method.
> f.close()
> c = raw_input(" Type anything to quit")
>
>
> Execution output:
> Linux abc.myhomenetwork.com 2.6.18-348.25.1.el5 #1 SMP Thu Apr 10 06:32:45 EDT 2014 x86_64 x86_64 x86_64 GNU/Linux
> ----------------------------
> Traceback (most recent call last):
> File "./readfile1.py", line 19, in <module>
> t=thread.start_new_thread(proc(f),())
> TypeError: first arg must be callable
You should probably also consider using the higher-level threading
module rather than the lower level thread module.
(Also consider using Python3 instead of Python2.)
Gary Herron
--
Dr. Gary Herron
Department of Computer Science
DigiPen Institute of Technology
(425) 895-4418
More information about the Python-list
mailing list