受输入输出 (I/O) 限制的非交互式单线程进程

问题描述 投票:0回答:1

我需要证明先前确定的进程的线程数可以改变,并且并非需要同时创建进程的每个线程。如何做到这一点?

我有这个:

[root@251663 ttyid:1 nie kwi 21 19:27:09 s251663]# ps -o pid,nlwp,lwp,cmd,stime -L -p 2569

    PID NLWP     LWP CMD                         STIME

   2569    4    2569 /usr/bin/clipit             11:38

   2569    4    2631 /usr/bin/clipit             11:38

   2569    4    2632 /usr/bin/clipit             11:38

   2569    4    2640 /usr/bin/clipit             **11:38**

并且需要类似的东西:

[sysop@247648 ttyid:0 śro maj 03 16:13:02 /]$ ps -o pid,nlwp,lwp,cmd,stime -L -p 7257

 PID NLWP LWP CMD STIME

 7257 6 7257 /usr/bin/gigolo 16:07

 7257 6 7259 /usr/bin/gigolo 16:07

 7257 6 7260 /usr/bin/gigolo 16:07

 7257 6 7261 /usr/bin/gigolo 16:07

 7257 6 7263 /usr/bin/gigolo 16:07

 7257 6 **10462** /usr/bin/gigolo **16:13**

[sysop@247648 ttyid:0 śro maj 03 16:13:16 /]$

如何创建新线程?

linux bash command postscript
1个回答
0
投票

您在不同时间启动线程,因此请稍等片刻后再启动下一个线程。

作为一个简单的演示:

#include <stdio.h>
#include <pthread.h>
#include <unistd.h>

void *thread_function(void *arg) {
    int thread_num = *((int *)arg);
    printf("Dit is thread %d\n", thread_num);
    sleep(300);
    printf("Einde thread %d\n", thread_num);
    pthread_exit(NULL);
}

int main() {
    pthread_t threads[3];
    int thread_args[3];

    for (int i = 0; i < 3; i++) {
        thread_args[i] = i;
        pthread_create(&threads[i], NULL, thread_function, &thread_args[i]);
        sleep(60);
    }

    for (int i = 0; i < 3; i++) {
        pthread_join(threads[i], NULL);
    }

    return 0;
}
© www.soinside.com 2019 - 2024. All rights reserved.