我需要证明先前确定的进程的线程数可以改变,并且并非需要同时创建进程的每个线程。如何做到这一点?
我有这个:
[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 /]$
如何创建新线程?
您在不同时间启动线程,因此请稍等片刻后再启动下一个线程。
作为一个简单的演示:
#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;
}