Multithreading 如何获取线程';什么是PID?
在下面的代码中,我使用一些辅助函数启动一个进程Multithreading 如何获取线程';什么是PID?,multithreading,python-2.7,Multithreading,Python 2.7,在下面的代码中,我使用一些辅助函数启动一个进程 def listener(ttl, port): print "Started listenning on port: " + str(port) + " for: " + str(ttl) + " seconds." serversocket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) serversocket.bind(('localhost', port))
def listener(ttl, port):
print "Started listenning on port: " + str(port) + " for: " + str(ttl) + " seconds."
serversocket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
serversocket.bind(('localhost', port))
serversocket.listen(1)
time.sleep(ttl)
print "Finished listening on port: " + str(port)
def main():
thread1 = threading.Thread(target = listener, args = (20,5555))
thread1.start()
print thread1.get_ident()
thread1.join()
print "main completed"
如何获得thread1
的PID
如果有区别的话,我现在使用的是Ubuntu Linux 14.04。Pid是一个进程标识符。线程不是进程。() 也就是说
os.getpid()
应该这样做。Pid是一个进程标识符。线程不是进程。() 也就是说
os.getpid()
应该这样做。我应该从main函数中获取PID,但不确定“os.getpid()应该如何执行……顺便说一句,我几乎可以肯定UNIX中的线程是进程。您的thread1将与main()具有相同的PID。thread1.get_ident()将获得一个标识符,但它与PID不同。我创建了几个线程,每个线程都有不同的PID。我相信您会将Windows与Unix混淆。我应该从主函数获取PID,但不确定“os.getpid()应该如何做…”。。。顺便说一句,我几乎可以肯定UNIX中的线程是进程。您的thread1将具有与main()相同的PID。thread1.get_ident()将获得一个标识符,但它与PID不同。我创建了几个线程,每个线程都有不同的PID。我相信你把Windows和Unix混淆了。PID(进程ID)或TID(线程ID)?PID-Unix上的进程ID线程在Linux内核中实现为进程,是的,但在用户区?线程和进程之间有区别,例如,线程与其他线程共享内存,而进程在Linux中不共享内存,因为PID=进程ID,SPID(系统PID)=线程ID。请参见
ps-T
。PID(进程ID)或TID(线程ID)?UNIX上的PID-进程ID线程在Linux内核中实现为进程,是的,但在土地使用者方面呢?线程和进程之间存在差异,例如,线程与其他线程共享内存,而进程在Linux中似乎是PID=进程ID和SPID(系统PID)=线程ID。请参见ps-T
。