91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

getchar在Linux多線程編程中的應用

小樊
86
2024-09-06 21:26:45
欄目: 智能運維

getchar() 是一個C語言庫函數,用于從標準輸入(通常是鍵盤)讀取一個字符

在Linux多線程編程中,你可以在一個單獨的線程里使用 getchar(),以便在其他線程執行任務時接收用戶輸入。這種方法可以讓你的程序在執行復雜任務時保持對用戶輸入的響應。

下面是一個簡單的示例,展示了如何在Linux多線程編程中使用 getchar()

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

void* input_thread(void *arg) {
    char c;
    printf("Press 'q' to quit\n");
    while ((c = getchar()) != 'q') {
        printf("You pressed: %c\n", c);
    }
    return NULL;
}

void* worker_thread(void *arg) {
    int i;
    for (i = 0; i < 5; i++) {
        printf("Worker thread: Doing some work...\n");
        sleep(1);
    }
    return NULL;
}

int main() {
    pthread_t input_tid, worker_tid;

    // 創建輸入線程
    if (pthread_create(&input_tid, NULL, input_thread, NULL) != 0) {
        perror("Failed to create input thread");
        exit(1);
    }

    // 創建工作線程
    if (pthread_create(&worker_tid, NULL, worker_thread, NULL) != 0) {
        perror("Failed to create worker thread");
        exit(1);
    }

    // 等待線程結束
    pthread_join(input_tid, NULL);
    pthread_join(worker_tid, NULL);

    printf("All threads finished.\n");
    return 0;
}

在這個示例中,我們創建了兩個線程:一個用于接收用戶輸入,另一個用于執行一些模擬工作。當用戶按下 ‘q’ 鍵時,程序將退出。

0
通渭县| 青铜峡市| 涿州市| 法库县| 常州市| 邛崃市| 云安县| 兖州市| 平定县| 富川| 镇坪县| 甘德县| 石屏县| 方城县| 黄浦区| 小金县| 肥城市| 泽州县| 蒙阴县| 丹凤县| 山阳县| 如皋市| 全南县| 特克斯县| 二连浩特市| 广州市| 合水县| 尼木县| 西乡县| 凤翔县| 白银市| 斗六市| 陇西县| 正宁县| 云阳县| 洪湖市| 寿光市| 阳新县| 连南| 三亚市| 罗山县|