Questions tagged «multithreading»



2
pthread的默认堆栈大小
据我了解,Linux上pthread的默认堆栈大小为16K。我在64位Ubuntu安装上得到了奇怪的结果。 $ ulimit -s 8192 也: pthread_attr_init(&attr); pthread_attr_getstacksize(&attr, &stacksize); printf("Thread stack size = %d bytes \n", stacksize); Prints Thread stack size = 8388608 bytes 我非常确定堆栈大小不是“ 8388608”。有什么事吗
24 c  multithreading 

5
如何平均每秒运行5次命令?
我有一个命令行脚本,该脚本执行API调用并使用结果更新数据库。 我对API提供程序的每秒限制为5个API调用。该脚本需要花费超过0.2秒的时间来执行。 如果我依次运行该命令,它将无法足够快地运行,并且我每秒只能进行1或2个API调用。 如果我依次但在多个终端上同时运行命令,则我可能会超出5个调用/秒的限制。 是否可以通过某种方式来协调线程,以便我的命令行脚本几乎每秒精确执行5次? 例如,可以运行5个或10个线程的东西,如果前一个线程在200ms之前执行了脚本,则没有线程将执行该脚本。

1
如果多线程Linux进程收到信号,该怎么办?
如果Unix(Posix)进程接收到信号,则将运行信号处理程序。 在多线程进程中会发生什么?哪个线程接收信号? 我认为,应该扩展信号API来处理该问题(即应该能够确定信号处理程序的线程),但是在网上寻找信息时,我只在Linux内核邮件列表中发现了长达一年之久的信息。不同的论坛。据我了解,Linus的概念不同于Posix标准,并且首先构建了一个兼容层,但现在Linux遵循posix模型。 目前的状态是什么?

3
为什么top和ps在相同的进程中显示不同的PID?
运行时top -H,我看到多个mysql线程都具有相同的PID。但是,ps -eLf我看到每个人都有不同的PID: ps -eLf UID PID PPID LWP C NLWP STIME TTY TIME CMD mysql 1424 1 1424 0 17 18:41 ? 00:00:00 /usr/sbin/mysqld mysql 1424 1 1481 0 17 18:41 ? 00:00:00 /usr/sbin/mysqld mysql 1424 1 1482 0 17 18:41 ? 00:00:00 /usr/sbin/mysqld mysql 1424 1 1483 0 …

2
为什么在现代Linux上,默认堆栈大小如此之大-8MB(在某些发行版中甚至为10MB)
例如,在OSX上,它甚至不到512k。 有没有建议的大小,请记住,该应用程序不使用递归并且不分配很多堆栈变量? 我知道这个问题太广泛了,它很大程度上取决于用法,但是我仍然想问,因为我想知道这背后是否存在一些隐藏的/内部的/系统的原因。 我想知道,因为我打算在我的应用程序中将堆栈大小更改为512 KiB-听起来仍然很大,但它比8MiB小得多-并会导致进程的虚拟内存显着减少,因为我有很多线程(I / O)。 我也知道这并没有真正的伤害,请在此处进行详细说明:pthreads的默认堆栈大小

1
bash脚本中的多线程/分叉
我写了一个bash脚本,格式如下: #!/bin/bash start=$(date +%s) inFile="input.txt" outFile="output.csv" rm -f $inFile $outFile while read line do -- Block of Commands done < "$inFile" end=$(date +%s) runtime=$((end-start)) echo "Program has finished execution in $runtime seconds." 该while循环将从读取$inFile,上线执行一些活动和转储结果$outFile。 由于$inFile3500+行长,因此脚本需要6-7个小时才能完全执行。为了减少此时间,我计划在此脚本中使用多线程或分叉。如果我创建8个子进程,$inFile则将同时处理其中的8行。 如何才能做到这一点?

1
默认使用多线程make?
有什么方法可以在系统范围内make使用多线程(在我的系统上,最好是6个线程),而不是仅通过添加-j6到命令行来使用?那么,如果我跑步make,它的行为与我跑步时相同make -j6吗?我想要此功能,因为我使用pacaur(我在Arch上)从AUR安装了很多软件包,因此我不直接运行make命令,但我仍然希望多线程来更快地构建软件包。

3
如何从bash shell脚本中并行调用服务URL?
我有从其他应用程序调用的服务。以下是我正在呼叫的服务网址- http://www.betaservice.domain.host.com/web/hasChanged?ver=0 我需要以多线程方式对我上面的服务URL进行一些负载测试,而不是一个个地依次调用。 bash shell脚本有什么办法,我可以通过多线程方式对其进行调用,从而对上述服务URL造成负担?如果可以的话,我可以有60-70个线程在上述URL上并行快速调用?

2
Linux最大线程数
我的服务器已在Amazon Ec2 linux上运行。我里面有一个mongodb服务器。mongodb服务器一直在高负载下运行,不幸的是,我遇到了问题:/ 众所周知,mongodb会为每个客户端连接创建新线程,并且在此之前运行良好。我不知道为什么,但是MongoDB不能以非特权用户(在mongod用户下运行)在主机上创建超过975个连接。但是当我以root用户身份运行它时,它最多可以处理20000个连接(mongodb内部限制)。但是,进一步的调查表明,问题不是MongoDB服务器,而是Linux本身。 我找到了一个简单的程序,该程序检查最大连接数: /* compile with: gcc -lpthread -o thread-limit thread-limit.c */ /* originally from: http://www.volano.com/linuxnotes.html */ #include <stdlib.h> #include <stdio.h> #include <unistd.h> #include <pthread.h> #include <string.h> #define MAX_THREADS 100000 #define PTHREAD_STACK_MIN 1*1024*1024*1024 int i; void run(void) { sleep(60 * 60); } int main(int argc, char *argv[]) { …
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.