Autor Beitrag
GTA-Place
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
EE-Regisseur
Beiträge: 5248
Erhaltene Danke: 2

WIN XP, IE 7, FF 2.0
Delphi 7, Lazarus
BeitragVerfasst: Di 29.03.05 18:32 
www.trainyard.de/nopaste/show.php?s=1531

Ich wollte die Berechnung der Zahlen von 0 bis 10000 auf 3 Threads verteilen, damit es schneller geht.
Allerdings, wie ich per ShowMessage festgestellt habe, wird TMathe.Excute gar nicht ausgeführt (Create schon).

Den Thread rufe ich so auf:
ausblenden Delphi-Quelltext
1:
TMathe.Create(0, 10000);					


Was hab ich falsch gemacht?
Wenn ich nur einen Thread aufrufen muss funktionierts, aber halt nicht wenn ich es mit 3 versuche.

Danke für eure Hilfe.

_________________
"Wer Ego-Shooter Killerspiele nennt, muss konsequenterweise jeden Horrorstreifen als Killerfilm bezeichnen." (Zeit.de)


Zuletzt bearbeitet von GTA-Place am So 14.12.08 13:18, insgesamt 1-mal bearbeitet
uall@ogc
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1826
Erhaltene Danke: 11

Win 2000 & VMware
Delphi 3 Prof, Delphi 7 Prof
BeitragVerfasst: Di 29.03.05 18:46 
wenn du das auf 3 threads aufteilst geht das doch net schneller oO

_________________
wer andern eine grube gräbt hat ein grubengrabgerät
- oder einfach zu viel zeit
GTA-Place Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
EE-Regisseur
Beiträge: 5248
Erhaltene Danke: 2

WIN XP, IE 7, FF 2.0
Delphi 7, Lazarus
BeitragVerfasst: Di 29.03.05 18:55 
Wieso denn nicht?
Es geht doch schneller, wenn ich 3 Zahlen gleichzeitig berechne, als nacheinander :?: :!:

_________________
"Wer Ego-Shooter Killerspiele nennt, muss konsequenterweise jeden Horrorstreifen als Killerfilm bezeichnen." (Zeit.de)
Gausi
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 8554
Erhaltene Danke: 481

Windows 7, Windows 10
D7 PE, Delphi XE3 Prof, Delphi 10.3 CE
BeitragVerfasst: Di 29.03.05 18:58 
Ich hoffe mal, dass das ein Scherz ist...3 Threads laufen zwar in gewisser Weise gleichzeitig, aber ein Prozessor kann immer nur eine Sache berechnen. Wenn du in deinem System 3 Prozessoren hast, und jeden Thread an eine CPU weitergibst, hast du einen Geschwindigkeitsgewinn. Sonst nicht.

_________________
We are, we were and will not be.
GTA-Place Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
EE-Regisseur
Beiträge: 5248
Erhaltene Danke: 2

WIN XP, IE 7, FF 2.0
Delphi 7, Lazarus
BeitragVerfasst: Di 29.03.05 19:00 
Naja, au egal.
Aber mich interessiert trotzdem warums net get.

_________________
"Wer Ego-Shooter Killerspiele nennt, muss konsequenterweise jeden Horrorstreifen als Killerfilm bezeichnen." (Zeit.de)
Backslash
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 202

WIN XP
Delphi 5 Ent, Delphi 2005 Prof
BeitragVerfasst: Mi 30.03.05 18:37 
Stell dir einfach 3 Leute vor. Alle dieser drei Personen wollen dir was ganz tolles mitteilen. Sie reden alle gleichzeitig. Allerdings verstehst du so nix. Wenn erst Person 1, dann 2, dann 3 oder zuerst Person 2, dann 1, dann 3, etc. redet kannst du die Nachrichten verstehen.

Mit der CPU sieht es nicht anders aus. Gewissermaßen bist du diese eine CPU in dem Beispiel und die 3 Leute die drei Threads, verstanden? :wink: . Da ich davon ausgehe, dass dein Rechner nur eine CPU hat, kann auch immer nur ein Thread hintereinander was berechnen. Das Betriebssystem managed deine Threads so, dass erst der erste einen Wert berechnet, dann der zweite einen Wert, dann der Dritte und wieder zurück. Sowas nennt man multiplexen, soviel ich weiß.

Ich hoffe, das war verständlich genug ;-)

Gruß

Backslash.