c语言1、创建3个线程,每个线程中写一个循环,每隔1s打印提示信息。线程最后添加线程退出函数2、把三个线程都设定为分离式线程 3、主线程先休眠10s,然后取消线程2的执行,主线程休眠5s后主线程最后退后执行线程退出函数
时间: 2023-11-28 15:49:25 浏览: 100
以下是一个符合您要求的C语言程序示例:
```c
#include <stdio.h>
#include <pthread.h>
#include <unistd.h>
void* thread_function(void* arg) {
int thread_number = *((int*)arg);
while (1) {
printf("Thread %d: Hello! This is a message.\n", thread_number);
sleep(1);
}
pthread_exit(NULL);
}
int main() {
pthread_t thread1, thread2, thread3;
int thread_num1 = 1, thread_num2 = 2, thread_num3 = 3;
pthread_attr_t attr;
pthread_attr_init(&attr);
pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_DETACHED);
pthread_create(&thread1, &attr, thread_function, (void*)&thread_num1);
pthread_create(&thread2, &attr, thread_function, (void*)&thread_num2);
pthread_create(&thread3, &attr, thread_function, (void*)&thread_num3);
sleep(10);
pthread_cancel(thread2);
sleep(5);
pthread_exit(NULL);
}
```
这个程序创建了三个线程,每个线程都有一个循环,在循环内部每隔1秒打印提示信息。线程最后添加了线程退出函数。这三个线程都被设置为分离式线程。主线程首先休眠10秒,然后取消线程2的执行,主线程再休眠5秒后最后退出,并执行线程退出函数。
请注意,这个示例仅用于演示目的,实际使用时可能需要更多的错误处理和线程同步机制。
阅读全文