执行线程是可以由调度程序独立管理的已编程指令的最小序列。线程是流程的组成部分,因此可以在一个流程中关联多个线程。 Linux对每个进程没有单独的线程限制,但是对系统上的进程总数有限制(因为线程只是Linux上具有共享地址空间的进程)。
我们的任务是找出可以在单个进程中创建的最大线程数(pthread_create可以创建的最大线程数)。使用以下命令可以看到最大线程数是ubuntu:
cat /proc/sys/kernel/threads-max
可以在运行时通过将所需的限制写入/ proc / sys / kernel / threads-max来修改Linux的线程限制。
在ubuntu操作系统上编译以下程序,以检查可以在C进程中创建的最大线程数。
cc filename.c -pthread where filename.c
is the name with which file is saved.
// C program to find maximum number of thread within
// a process
#include
#include
// This function demonstrates the work of thread
// which is of no use here, So left blank
void *thread ( void *vargp){ }
int main()
{
int err = 0, count = 0;
pthread_t tid;
// on success, pthread_create returns 0 and
// on Error, it returns error number
// So, while loop is iterated until return value is 0
while (err == 0)
{
err = pthread_create (&tid, NULL, thread, NULL);
count++;
}
printf("Maximum number of thread within a Process"
" is : %d\n", count);
}
输出:
Maximum number of thread within a Process is : 32754
想要从精选的最佳视频中学习和练习问题,请查看《基础知识到高级C的C基础课程》。