Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Problème de multithreading

12 réponses
Avatar
Grég
Bonjour,

J'ai une application du type MTMDI (exemple MSN) qui se fige sur certain pc
sitôt que j'ai plus d'un thread. Ce problème survient même avec mtmdi.exe
fournit par Microsoft.

Ce problème dit-il quelque chose à quelqu'un. J'avoue être un peu perdu mais
je soupçonne un problème hardware ou bios ...

Merci d'avance.

Grég.

2 réponses

1 2
Avatar
Paul Bacelar
"Vincent Burel" wrote in message
news:43df0b56$0$20179$

"Paul Bacelar" wrote in message
news:drm397$s6n$
"Vincent Burel" wrote in message
news:43de611c$0$21258$
>
> "Chevalley J.-C" wrote in message
> news:43de58da$
>> J'ai trouvé une autre "solution" pour que ça fonctionne: si l'on
>> désactive
>> l'option "Hyperthreading" dans le bios, le programme fonctionne...
>
> C'est typiquement le signe qu'il y a un problème de synchronization


entre
> deux thread. le HyperThreading ou les station Dual Proc ne pardonnent


pas
> les erreur de synchronisation multithread.
>
>> A ce sujet, y a-t-il une façon d'obliger l'execution d'un programme
>> multithread dans "une partie du processeur" lorsqu'il est en mode
>> hyperethreading? options de compilations? ou manière de créer les
>> threads?
>
> non, pas vraiment, c'est Windows qui distribue les Thread dans les
> processeurs... mais si vous faites une application avec deux thread,


vous
> pouvez pratiquement etre certains qu'il seront distribué chacun sur un
> proc
> (ou file d'exécution).
>
> VB
>
>

Bien que l'analyse du problème soit bonne, une grosse inexactitude c'est
glissée en fin post.

On peut diriger sur quel processeur un thread s'exécute, voir
"SetProcessAffinityMask"



D'abord c'est SetThreadAffinityMask qui nous intéresse, ensuite je disais
"pas vraiment" parce qu'une application ne peut pas controler la
distribution que le systeme fait des divers thread systeme dans les
processeurs avant sont lancement. On ne peut pas non plus donner une
affinité à un thread indirectement crée, par exemple quand on lance un
flux
de données, bref, tout un tas de paramètre inconnus pour vous qui limitent
la pertinence de donner un AffinityMask à un thread.




L'inexactitude c'est "thread" à la place de "process", rendant votre
explication sur l'inutilité et la complexité du système caduque.

Oui c'est compliqué avec SetThreadAffinityMask, mais beaucoup moins avec
SetProcessAffinityMask.


PS à l'auteur de TestSiQQcToucheAMaPile (Vincent Burel): au lieu
d'asséner
tes vérités souvent inexactes,



Déjà le fait que vous ne reconnaissiez pas vos lacune (vous ne savez pas
comment fonctionne la pile d'un thread user sous Windows) est d'une
incorrection sans nom... Mais le fait que vous en rajoutiez alors que j'ai
fait la preuve de mes dires, c'est un scandale ! :-)

VB





Mes lacunes oui (j'ai fourché sur thread au lieu de programme, mia culpa ,
il était très tard).

La preuve de vos dires est un programme jouet qui ne teste absolument pas le
zéro-paging des recommandations C2 de l'US Army.

Voulez-vous vraiment que je vous donne une implémentation d'une APC User
(http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dllproc/base/queueuserapc.asp)
qui mettra votre "programme de démonstration" en faute.

Je ne vous fais pas l'affront de vous donner le code d'une trivialité
confondante (contrairement à vous.) ;-))))
C'est bon, on arrête les conneries.

--
Paul Bacelar
Avatar
Vincent Burel
"Paul Bacelar" wrote in message
news:drp9i4$huo$
"Vincent Burel" wrote in message
news:43df0b56$0$20179$
>
Mes lacunes oui (j'ai fourché sur thread au lieu de programme, mia culpa ,
il était très tard).



regardez moi ce mytho, comment qu'il minimise ces tords ! :-))

La preuve de vos dires est un programme jouet qui ne teste absolument pas


le
zéro-paging des recommandations C2 de l'US Army.



avez vous pensé à faire du prosélitisme religieux !? :-)

Voulez-vous vraiment que je vous donne une implémentation d'une APC User



(http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dllproc/ba
se/queueuserapc.asp)
qui mettra votre "programme de démonstration" en faute.

Je ne vous fais pas l'affront de vous donner le code d'une trivialité
confondante (contrairement à vous.) ;-))))



Je vous en prie, faites nous l'affront (et postez le dans le bon thread)
prouvez nous que vous comprenez qqc à ce que vous lisez, et prouvez nous que
vous pouvez faire de l'informatique.

Dans le dernier post de HalfWolf du thread "Prb avec
SetThreadContext/GetThreadContext" il donne un code source exemple pour
mettre en valeur ce que vous disiez, répondez y. C'est incroyable les
efforts que vous faites pour ne pas répondre aux questions qu'on vous pose .

VB
1 2