Hirdetés

Új hozzászólás Aktív témák

  • zka67

    őstag

    válasz zka67 #4891 üzenetére

    Sziasztok,

    Nem tudom megoldani azt, hogy csak akkor olvasson be egy karaktert az stdin-ről, ha van karakter, magyarul ne várjon a karakterre, ha nincs.

    while (1) {
    if (checkInput()) doInput();
    if (checkTimer()) doTimer();
    }

    nos azt hiszem, sikerült megoldanom a problémát:

    void ???func(void *parm) {
    pthread_mutex_lock(&mutex);

    ...

    pthread_mutex_unlock(&mutex);
    sched_yield();
    return NULL;
    }

    int main(int argc, char **argv) {
    pthread_t threadid, inputid;
    char f;

    f = 1;
    while (1) {
    pthread_mutex_lock(&mutex);
    pthread_create(&threadid, NULL, threadfunc, NULL);
    if (f) {
    f = 0;
    pthread_create(&inputid, NULL, inputfunc, NULL);
    }
    usleep(10);
    pthread_mutex_unlock(&mutex);
    pthread_join(threadid, NULL);
    pthread_mutex_destroy(&mutex);
    }
    }

    ahol az inputfunc a doInput() és a threadfunc a doTimer()

    Magyarul, két külön szálon fut a két funkció.

    A program alapját a neten találtam, és egyenlőre fogalmam sincs, hogy a pthread_xxx-ek mit is csinálnak pontosan, de a program az elvárásoknak megfelelően működik.

    [ Szerkesztve ]

Új hozzászólás Aktív témák