我知道在pthread_self()和syscall(SYS_gettid)之间。pthread_create()生成一个POSIX线程ID,该ID由通常定义为unsigned long int的结构pthread_t表示。我们可以使用pthread_self获取由pthread_create生成的。
使用strace,我知道libpthread.so.0中的pthread_create()是通过调用clone系统调用来实现的,这也是用于fork()的系统调用。在通过调用pthread_create()创建POSIX线程之后,将生成一个新的POSXI线程(由pthread_self()返回的线
在ps的管理中
tid TID the unique number representing a dispatchable
entity (alias lwp, spid). This value may also
appear as: a process ID (pid); a process group
ID (pgrp); a session ID for the session leader
我一直在尝试在ubuntu 14.04上部署我的Django应用程序,安装的包是:
django 1.4.15
apache 2.4
python 2.7
mod_wsgi 3.4 (there is one compiled as mod_wsig.so-2.7 which is the one I use)
在我的apache配置中,我有以下字段:
# Modules
LoadModule mpm_worker_module /usr/lib/apache2/modules/mod_mpm_worker.so
LoadModule mime_module /usr/lib/apache2/
在EC2 linux服务器上,apache监听443,web app nodejs监听6969。 我有ssl.conf文件 <VirtualHost _default_:443>
SSLEngine On
SSLProxyEngine On
ProxyRequests Off
ProxyPreserveHost On
SSLProxyVerify none
SSLProxyCheckPeerCN off
SSLProxyCheckPeerName off
SSLProxyCheckPeerExpire off
我正尝试在Windows上托管两个Django网站(所以没有WSGIdaemonprocess)。当我只托管其中的一个时,它工作得很好。现在它仍然可以工作(主路径"/“命名为magazyn)。但是第二个(名为awizacje的路径"/awizacje“)抛出了一个内部服务器错误。Apache日志中的完整错误消息如下所示: C:\A\34\s\Modules\_decimal\libmpdec\context.c:57: warning: mpd_setminalloc: ignoring request to set MPD_MINALLOC a second time
[
Linux上的一个资源提到通过克隆系统调用来实现p线程创建,而其他基于unix的平台(后者以其他方式实现相同)。
这意味着在linux下,使用pthread_create从同一个进程创建的两个线程将具有不同的父进程ids。
$ ./a.out
new thread: pid 6628 tid 1026 (0x402)
main thread: pid 6626 tid 1024 (0x400)
问题
虽然克隆系统调用创建了一个子进程,该进程可以共享父进程执行上下文的可配置量(例如文件描述符和内存),但在我看来,在所有实现中,这可能不是最有效的。在Linux下,对于从pthread_c
上下文:我使用Ubuntu20.4VPS和Apache2来托管一个使用flask的深度学习模型。 我需要从图像中写一段视频,在那里我使用 imageio.mimsave(path, [img_as_ubyte(frame) for frame in predictions], fps=fps) 当我使用flask-ngrok测试它时,它可以工作。但是在使用WSGI和apache2服务器在flask上部署之后,它给出了这个断管错误。太奇怪了! Apache2的错误日志: ERROR:model:Exception on / POST,referer: host ip wsgi:error Tr