在Ubuntu中,你可以使用POSIX線程庫(pthread)來創建多線程程序,并使用usleep
函數來控制線程的執行
首先,確保你已經安裝了支持C編程的開發環境。
接下來,創建一個名為thread_usleep.c
的C文件,然后將以下代碼復制到該文件中:
#include<stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <pthread.h>
void* thread_function(void *arg) {
int sleep_time = *((int *)arg);
printf("Thread started, sleeping for %d microseconds.\n", sleep_time);
usleep(sleep_time);
printf("Thread finished.\n");
return NULL;
}
int main() {
pthread_t thread1, thread2;
int sleep_time1 = 500000; // 500ms
int sleep_time2 = 1000000; // 1s
// Create the threads
if (pthread_create(&thread1, NULL, thread_function, &sleep_time1)) {
printf("Error creating thread 1.\n");
return 1;
}
if (pthread_create(&thread2, NULL, thread_function, &sleep_time2)) {
printf("Error creating thread 2.\n");
return 1;
}
// Join the threads
pthread_join(thread1, NULL);
pthread_join(thread2, NULL);
printf("All threads finished.\n");
return 0;
}
這個程序創建了兩個線程,每個線程都會休眠不同的時間(以微秒為單位),然后打印一條消息。
要編譯和運行此程序,請打開終端,導航到包含thread_usleep.c
的目錄,并運行以下命令:
gcc -o thread_usleep thread_usleep.c -lpthread
./thread_usleep
這將編譯程序并創建一個名為thread_usleep
的可執行文件。然后,運行該可執行文件以查看輸出。
注意:在編譯時,我們需要鏈接-lpthread
庫,因為我們使用了POSIX線程函數。