Threads



  • Hallo zusammen,

    bin gerade echt am verzweifeln, weil ich den nachfolgende Syntax zur Ausgabe nicht nachvollziehen kann.

    Bitte dringend um Hilfe!

    #include	<stdio.h>
    #include	<stdlib.h>
    #include	<unistd.h>
    #include	<pthread.h>
    #include	<errno.h>
    #include	<string.h>
    #include	<sys/wait.h>
    
    static	void	delay(void)
    {
    	struct timespec	ts;
    
    	ts.tv_sec = 0;
    	ts.tv_nsec = 3000000;		/* 3 ms */
    
    	nanosleep(&ts, NULL);
    }
    
    static	void	simple_print(const char *str)
    {
    	while (*str) {
    		write(fileno(stdout), str++, 1);
    		delay();
    	}
    }
    
    static	void	*fox(void *dummy)
    {
    	delay();
    	simple_print("The quick brown fox jumps over the lazy dog.\n");
    	return(dummy);
    }
    
    static	void	*work(void *dummy)
    {
    	simple_print("The main program is working!\n");
    	return(dummy);
    }
    
    int	main(int argc, char *argv[])
    {
    	pthread_t	tid;
    
    	if (pthread_create(&tid, NULL, fox, NULL) != 0) {
    		fprintf(stderr, "%s: pthread_create() failed (%s)\n",
    			argv[0], strerror(errno));
    		return(1);
    	} else {
    		printf("%s: thread %lu created thread %lu\n",
    		       argv[0], (unsigned long) pthread_self(),
    		       (unsigned long) tid);
    		work(NULL);
    		if (pthread_join(tid, NULL) != 0) {
    			fprintf(stderr, "%s: pthread_join() failed (%s)\n",
    				argv[0], strerror(errno));
    			return(1);
    		} else {
    			printf("%s: thread %lu exited\n",
    			       argv[0], (unsigned long) tid);
    		}
    	}
    	return(0);
    }
    


  • Ich verstehe das Programm sehr gut. Und nun?



  • Dieser Thread wurde von Moderator/in rüdiger aus dem Forum C (C89 und C99) in das Forum Linux/Unix verschoben.

    Im Zweifelsfall bitte auch folgende Hinweise beachten:
    C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?

    Dieses Posting wurde automatisch erzeugt.



  • sieht so aus als wüsstest du nicht was threads sind oder wie man sie started, damit umgeht. Weil das programm ist eigentlich ganz gut verständlich.

    google mal nach pthread tuts

    hab das hier mal gefunden
    http://www.yolinux.com/TUTORIALS/LinuxTutorialPosixThreads.html


Anmelden zum Antworten