Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/multithreading/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Multithreading 如何获取线程';什么是PID?_Multithreading_Python 2.7 - Fatal编程技术网

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