Thread sous windows...

Thread sous windows... - C - Programmation

Marsh Posté le 26-10-2006 à 11:43:56    

Bonjours.
J'étai entrai de lire ce tuto, sur l'utilisation de thread en C.
Mais je croyer que les fonction du tuto que je lisais ( http://mapage.noos.fr/emdel/pthreads.htm ) étais standard. Mais ce n'ai pas le cas je croi, puisque je les utilise sous windows et ca ne marche pas.
Donc en cherchant sur google j'ai trouvé des fonction sur les thread sous windows, comme par exemple CreateThread() au lieux de pthread_create() ...
Mais quand j'execute ce code:

Code :
  1. #include <stdio.h>
  2. #include <windows.h>
  3. static void *task_a (void *p_data)
  4. {
  5.    int i;
  6.    for (i = 0; i < 3; i++)
  7.    {
  8.       printf ("Hello world A --- (%d)\n", i);
  9.    }
  10.    (void) p_data;
  11.    return NULL;
  12. }
  13. static void *task_b (void *p_data)
  14. {
  15.    int i;
  16.    for (i = 0; i < 19; i++)
  17.    {
  18.       printf ("Hello world B --------- (%d)\n", i);
  19.    }
  20.    (void) p_data;
  21.    return NULL;
  22. }
  23. int main (void)
  24. {
  25.    HANDLE ta;
  26.    HANDLE tb;
  27.    puts ("main init" );
  28.    tb = CreateThread(NULL,0,(void*)task_b,NULL,0,0);
  29.    ta = CreateThread(NULL,0,(void*)task_a,NULL,0,0);
  30.     /*
  31.    SuspendThread(ta);
  32.    SuspendThread(tb);
  33.    ResumeThread(ta);
  34.    ResumeThread(tb);
  35.     */
  36.    puts ("main end" );
  37.    system("pause" );
  38.    return 0;
  39. }


j'ai un "main init" qui s'afiche ensuite un "main end" , et aprés, j'ai les hello world.....
Je croi que dans le tuto il on utilisé la fonction pthread_join() qui permet de suspendre l'exécution de la tâche courante en attendant la fin d'une tâche déterminée.
Mais je ne trouve pas l'equivalan de cette fonction sous windows...
j'ai trouvé , SuspendThread(ta) mais elle suspand carément la tache et il fait le refair marché avec ResumeThread(ta) ........
 
Merci pour votre aide.
 

Reply

Marsh Posté le 26-10-2006 à 11:43:56   

Reply

Marsh Posté le 26-10-2006 à 11:52:09    

big_dadi_fat a écrit :

Mais je croyer que les fonction du tuto que je lisais ( http://mapage.noos.fr/emdel/pthreads.htm ) étais standard. Mais ce n'ai pas le cas je croi, puisque je les utilise sous windows et ca ne marche pas.


Maladroit !
 

big_dadi_fat a écrit :

Donc en cherchant sur google j'ai trouvé des fonction sur les thread sous windows, comme par exemple CreateThread() au lieux de pthread_create() ...


Win32. Donc non standard.
 

big_dadi_fat a écrit :

Mais je ne trouve pas l'equivalan de cette fonction sous windows...


WaitForSingleObject


---------------
Töp of the plöp
Reply

Marsh Posté le 26-10-2006 à 11:54:08    

[:drapo] [:meganne]
t'a essayé le turbo pascal ?


Message édité par vapeur_cochonne le 26-10-2006 à 11:54:15

---------------
marilou repose sous la neige
Reply

Marsh Posté le 26-10-2006 à 11:59:17    

_darkalt3_ a écrit :

Win32. Donc non standard.


Oui, en fait mnt j'ai utilisé des fontion Win32 non portable, donc c'est pas grave..
 

_darkalt3_ a écrit :

WaitForSingleObject


Merci.


Message édité par big_dadi_fat le 26-10-2006 à 12:02:44
Reply

Marsh Posté le 26-10-2006 à 13:03:01    

C'est dommage... les pthread sont pourtant biens :) (avis tout à fait personnel).
cf. : http://sourceware.org/pthreads-win32/conformance.html pour la liste des fonctions implémentées ou non (et quelques cas particuliers)


Message édité par bb138 le 26-10-2006 à 17:23:19
Reply

Marsh Posté le 26-10-2006 à 13:25:25    

big_dadi_fat a écrit :

J'étai entrai de lire ce tuto, sur l'utilisation de thread en C.
Mais je croyer que les fonction du tuto que je lisais ( http://mapage.noos.fr/emdel/pthreads.htm ) étais standard.


 
Non. Elles ont standard POSIX.1, donc portables sur beaucoup de plateformes dont Windows.
 
http://sourceware.org/pthreads-win32/

Citation :

Mais ce n'ai pas le cas je croi, puisque je les utilise sous windows et ca ne marche pas.


Ben si, ca marche ... si tu installes la bibliothèque qui va bien... C'est pas expliqué sur mon site ?

Citation :

Donc en cherchant sur google j'ai trouvé des fonction sur les thread sous windows, comme par exemple CreateThread() au lieux de pthread_create() ...


Oui, l'API Win32 fournit des fonctions strictement Windows pour faire des threads. Si tu passes sous Linux, il te faudra tout réapprendre. Avec le pthreads, c'est le même code sur toutes les plateformes. C'est toi qui voit...

Citation :

Mais quand j'execute ce code:


Là, je ne peux rien pour toi. Les spécialistes de Windows sont http://www.developpez.net/forums/forumdisplay.php?f=16 :


---------------
Des infos sur la programmation et le langage C: http://www.bien-programmer.fr Pas de Wi-Fi à la maison : http://www.cpl-france.org/
Reply

Marsh Posté le 26-10-2006 à 15:07:48    

Emmanuel Delahaye a écrit :

Oui, l'API Win32 fournit des fonctions strictement Windows pour faire des threads. Si tu passes sous Linux, il te faudra tout réapprendre. Avec le pthreads, c'est le même code sur toutes les plateformes. C'est toi qui voit...


Ok je croi que je vais apprendre le pthreads, c'est mieux. Mais où esque je peut telechargé la lib libpthread.a svp ?
 

Reply

Marsh Posté le 26-10-2006 à 16:22:38    

big_dadi_fat a écrit :

Ok je croi que je vais apprendre le pthreads, c'est mieux. Mais où esque je peut telechargé la lib libpthread.a svp ?


Je ne t'ai pas donné un lien ? Faudrait peut être lire les réponses en entier...
 


---------------
Des infos sur la programmation et le langage C: http://www.bien-programmer.fr Pas de Wi-Fi à la maison : http://www.cpl-france.org/
Reply

Marsh Posté le 29-10-2006 à 12:28:00    

Emmanuel Delahaye a écrit :


Là, je ne peux rien pour toi. Les spécialistes de Windows sont


 
Si on a moins de 15 ans...
Les pros  (consultants, freelances > 20 ans XP) sont sur les NG, pas les forums webs heureusement...

Reply

Marsh Posté le 29-10-2006 à 12:30:59    

marctes a écrit :


Les pros  (consultants, freelances > 20 ans XP) sont sur les NG, pas les forums webs heureusement...


Ce qui explique certainement le fait que tu fréquentes régulièrement ce forum [:icon12]


---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le 29-10-2006 à 12:30:59   

Reply

Marsh Posté le 29-10-2006 à 13:12:39    

Harkonnen a écrit :

Ce qui explique certainement le fait que tu fréquentes régulièrement ce forum [:icon12]


mdr.
dit, comment on fait pour regoindre un NG ?  :p  (oui oui, je sais, je suis une tete de mul).
 

Reply

Marsh Posté le 29-10-2006 à 13:38:52    

marctes a écrit :

Si on a moins de 15 ans...
Les pros  (consultants, freelances > 20 ans XP) sont sur les NG, pas les forums webs heureusement...


Désolé de te dire que c'est vraiment un raisonnement idiot... (une forme de racisme en fait. Il y a des lois contre ça en France...)
 
Quel rapport entre le contenu et le contenant ? Personnellement, j'ai beaucoup fréquenté Usenet, mais je trouve les forums web plus pratiques.
 
(j'ai 50 ans, dont 17 ans dans l'informatique et une carrière de formateur/consultant qui démarre).


---------------
Des infos sur la programmation et le langage C: http://www.bien-programmer.fr Pas de Wi-Fi à la maison : http://www.cpl-france.org/
Reply

Marsh Posté le 29-10-2006 à 13:45:08    

big_dadi_fat a écrit :

mdr.
dit, comment on fait pour regoindre un NG ?  :p  (oui oui, je sais, je suis une tete de mul).


Soit avec Google groups
 
Par exemple :  
 
http://groups.google.fr/group/comp.lang.c
http://groups.google.fr/group/fr.comp.lang.c
 
soit en t'abonnant à un 'news feeder'. Dans ce cas, il faut souvent un login/mot de passe. Voir déjà avec ton FAI...
 


---------------
Des infos sur la programmation et le langage C: http://www.bien-programmer.fr Pas de Wi-Fi à la maison : http://www.cpl-france.org/
Reply

Marsh Posté le 29-10-2006 à 14:04:35    

Emmanuel Delahaye a écrit :

Désolé de te dire que c'est vraiment un raisonnement idiot... (une forme de racisme en fait. Il y a des lois contre ça en France...)
 
Quel rapport entre le contenu et le contenant ? Personnellement, j'ai beaucoup fréquenté Usenet, mais je trouve les forums web plus pratiques.
 
(j'ai 50 ans, dont 17 ans dans l'informatique et une carrière de formateur/consultant qui démarre).


Nan mais laisse tomber, l'ami marctes est un spécialiste de ce genre de post ! D'ailleurs il ne sait que poster la même chose : des liens vers les NG. Depuis qu'il est inscrit, je ne l'ai jamais vu apporter la moindre réponse concrète à un topic, tout ce qu'il sait faire c'est crier à tout bout de champ que les NG c'est mieux, les forums c'est pourri, et tout.
Mon avis perso : c'est un type qui est incapable de coder un hello world en C, et le fait de clamer à cor et à cri que les NG c'est mieux lui permet de réhausser son égo de programmeur (l'est il vraiment ?) ou d'imposteur (n'en serait il pas un ?)


---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le 29-10-2006 à 14:06:19    

D'ailleurs, voici une de ses plus mémorables interventions :D
http://forum.hardware.fr/hardwaref [...] m#t1407724


---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le 29-10-2006 à 16:01:22    

Harkonnen a écrit :

D'ailleurs, voici une de ses plus mémorables interventions :D
http://forum.hardware.fr/hardwaref [...] m#t1407724


 

Citation :

Si tu veux vraiment comprendre ce que tu fais , rien de mieux que C, C++ et ASM et Win32 API (les meilleurs programmeurs de la planète maitrisent ça)
Pour les gosses cliqueurs fous qui ne comprennent rien à ce qu'ils font, .NET est là pour ça.


 
 :lol:  MdR
 
 

Reply

Marsh Posté le 05-11-2006 à 20:49:46    

Emmanuel Delahaye a écrit :

D鳯l頤e te dire que c'est vraiment un raisonnement idiot... (une forme de racisme en fait. Il y a des lois contre 硠en France...)


 
 
Non, c'est exact et c'est une évidence.
Les momes ne connaissent même pas l'existence de Usenet
Les meilleurs freelances et pros experimentes y sont depuis les BBS (marctes en est un des piliers : il facture je crois encore à près de 2000 euros HT/J...)
La difference de niveau est colossale...

Message cité 2 fois
Message édité par SylvainX le 05-11-2006 à 20:51:15
Reply

Marsh Posté le 05-11-2006 à 21:45:14    

Emmanuel Delahaye a écrit :

Personnellement, j'ai beaucoup fréquenté Usenet, mais je trouve les forums web plus pratiques.


Ne me dit pas que c'est plus facile de quoter sur un forum web quand même !

Reply

Marsh Posté le 05-11-2006 à 21:49:45    

SylvainX a écrit :

Non, c'est exact et c'est une évidence.
Les momes ne connaissent même pas l'existence de Usenet
Les meilleurs freelances et pros experimentes y sont depuis les BBS (marctes en est un des piliers : il facture je crois encore à  près de 2000 euros HT/J...)
La difference de niveau est colossale...


 
Ah oui, c'est vrai, on mesure la compétence de quelqu'un en fonction du tarif qu'il demande ...   :sarcastic:  
Ca vaut combien dans un cv "je fréquente usenet et j'ai un passif bbs" ?


---------------
Töp of the plöp
Reply

Marsh Posté le 06-11-2006 à 07:28:22    

SylvainX a écrit :


Les meilleurs freelances et pros experimentes y sont depuis les BBS (marctes en est un des piliers : il facture je crois encore à  près de 2000 euros HT/J...)


tu sais, le milieu de l'informatique est rempli de margoulins qui facturent à prix d'or des prestas de merde hein, il suffit de voir le code de certains sites webs pour s'en rendre compte [:icon12]
Quant à marctes, j'attends toujours de voir de lui une vraie réponse ici plutot que des critiques incessantes.. tout comme pour toi d'ailleurs ! Parce que pour l'instant, pour moi vous n'êtes que des petits marioles ne sachant que critiquer et à l'égo surdimensionné.
 

SylvainX a écrit :


La difference de niveau est colossale...


y'a un truc que je voudrais comprendre : vu qu'apparemment toi et ton pote êtes des supers cadors de la mort, pourquoi vous restez pas sur les NG au lieu de trainer vos guetres sur des forums webs au niveau si bas ? pas pour y apporter vos contributions en tout cas !
ou alors peut etre que marctes vient ici chercher les réponses qu'il facture ensuite 2000 €/j ? [:icon12]


---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le 11-11-2006 à 20:59:36    

Je profite de l'occasion pour faire une remarque à 2000 roupies non déductible pour dire que les threads win32 (et la sémantique des IPC en général) c'est de la merde, que les pthreads c'est de la merde mais que les pthreads émulées sur win32 c'est doublement de la merde.

Reply

Marsh Posté le 11-11-2006 à 22:03:30    

tbp a écrit :

Je profite de l'occasion pour faire une remarque à 2000 roupies non déductible pour dire que les threads win32 (et la sémantique des IPC en général) c'est de la merde, que les pthreads c'est de la merde mais que les pthreads émulées sur win32 c'est doublement de la merde.


Ca marche très bien les pthreads. Tu peux donner des raisons ou c'était juste une éructation pré-pubère ?
 


---------------
Des infos sur la programmation et le langage C: http://www.bien-programmer.fr Pas de Wi-Fi à la maison : http://www.cpl-france.org/
Reply

Marsh Posté le 12-11-2006 à 06:26:23    

Emmanuel Delahaye a écrit :

Ca marche très bien les pthreads. Tu peux donner des raisons ou c'était juste une éructation pré-pubère ?


 
Emu par ton argumentation, je m'empresse de répondre avec le témoignage d'un autre adolescent qui, avec la même technicité, disait

Citation :

Alan cox, http://lwn.net/2000/0330/a/alan.html
"Posix threads is a braindamaged pile of crap"


 
J'aurais pu également citer le barbu finlandais sur le sujet, mais à quoi bon.
Que l'on n'ait d'autre choix que les pthreads sur une plateforme, passe encore. Mais qu'on les conseille là ou elles ne sont pas natives, c'est vraiment se tirer sur la nouille.
 
note: c'est vraiment la zone de se reveiller à 6h du mat un dimanche.
 

Reply

Marsh Posté le 12-11-2006 à 08:24:10    

tbp a écrit :

Emu par ton argumentation, je m'empresse de répondre avec le témoignage d'un autre adolescent qui, avec la même technicité, disait

Citation :

Alan cox, http://lwn.net/2000/0330/a/alan.html
"Posix threads is a braindamaged pile of crap"




OK, j'ai lu cette discussion, et il en ressort, et c'est pas nouveau, que la portabilité a un coût, c'est tout.  

Citation :


Subject Re: Slow pthread_create() under high load
Date Sun, 26 Mar 2000 15:46:15 +0100 (BST)
From Alan Cox <>
 
>    Alan, if POSIX threads are a "braindamaged pile of crap" (not arguing
> but I do use threads quite heavily) what would you rather us use as
> threads in Linux? Or are you not happy with any current implementation?
 
If you want performance use clone() directly. If you want portability
you have to pay for the glue. Ulrich is right that at the moment said glue
involves jumping through a few too many hoops


Il ne faut pas répéter bêtement ce que disent les gourous sans chercher à comprendre.
 
Quand a Windows, qui a des threads natifs, la perte en ligne apportée par les pthreads est faible (en tout cas plus faible que sous Linux), et le gain de productivité est grand. Le choix est donc tout à fait justifié.

Message cité 1 fois
Message édité par Emmanuel Delahaye le 12-11-2006 à 08:26:59

---------------
Des infos sur la programmation et le langage C: http://www.bien-programmer.fr Pas de Wi-Fi à la maison : http://www.cpl-france.org/
Reply

Marsh Posté le 12-11-2006 à 09:02:17    

Emmanuel Delahaye a écrit :

Il ne faut pas répéter bêtement ce que disent les gourous sans chercher à comprendre.


La discussion gagnerait à ce que, ne serait qu'un instant, du haut de ta condescendance, tu consideres l'éventualité que j'ai utilisé à la fois les pthreads et la panoplie win32 pour autre chose que des "hello world". Mais ce n'est pas vital, donc...
 
Si le problème avec les pthreads se limitait à la création des threads ce serait là un moindre mal. Non, le truc c'est que la norme est trop peu contraignante, c.f. http://www.opengroup.org/onlinepub [...] dcast.html et les spurious wakeups. Personellement, j'adore.
 

Emmanuel Delahaye a écrit :

Quand a Windows, qui a des threads natifs, la perte en ligne apportée par les pthreads est faible (en tout cas plus faible que sous Linux), et le gain de productivité est grand. Le choix est donc tout à fait justifié.


Ben voyons. Les semantiques n'ont rien à voir, mais ça ne mange pas de pain d'affirmer que c'est la quantité négligeable, hein.

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed