AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Aufgaben auf Threads aufteilen?

Ein Thema von josef · begonnen am 29. Dez 2003 · letzter Beitrag vom 29. Dez 2003
Antwort Antwort
josef

Registriert seit: 31. Jul 2003
56 Beiträge
 
Delphi 2005 Personal
 
#1

Aufgaben auf Threads aufteilen?

  Alt 29. Dez 2003, 03:23
Ich habe folgendes Problem:
Ich hab mir zum Testen ein kleines Multithread-Programm geschrieben.
Man soll angeben können, wieviele Aufgaben zu erledigen sind, und wieviele Threads gestartet werden sollen.
Funktioniert auch fast.
Ich habe ein Problem mit der Aufteilung.
Mir fällt nicht ein wie ich das lösen soll, dass z.B. 9 Aufgaben auf fünf Thrads verteilt werden sollen.
Dividieren kann ich nicht, da sonst immer eine Ganze zahl rauskommt, und 9 kein vielfaches von 5 ist.
Es müssten also vier Threads jeweils 2 Aufgaben ausführen, und ein Thread nur eine.

Hoffentlich kapiert jetzt noch einer was ich meine
  Mit Zitat antworten Zitat
Benutzerbild von Duffy
Duffy

Registriert seit: 19. Mär 2003
Ort: Wuppertal
835 Beiträge
 
Delphi 3 Standard
 
#2

Re: Aufgaben auf Threads aufteilen?

  Alt 29. Dez 2003, 07:06
Hallo josef,
Zitat von josef:
Dividieren kann ich nicht, da sonst immer eine Ganze zahl rauskommt, und 9 kein vielfaches von 5 ist.
mach es doch so
Delphi-Quellcode:
var
  AnzAufgabenJeThread: Integer;
begin
  AnzAufgabenJeThread := AnzAufgaben div AnzThreads;
  if (AnzAufgaben mod AnzThreads) > 0 then
    Inc(AnzAufgabenJeThread);
end;
jetzt einfach auf jeden Thread mit AnzAufgabenJeThread die Aufgaben verteilen bis AnzAufgaben = 0 ist.

bye
Claus
Künftige Generationen wollen ihre Fehler selber machen.
Jedes Programm wird nie das können, was Du wirklich brauchst.
Das Gegenteil von gut ist gut gemeint
-----
  Mit Zitat antworten Zitat
choose

Registriert seit: 2. Nov 2003
Ort: Bei Kiel, SH
729 Beiträge
 
Delphi 2006 Architect
 
#3

Re: Aufgaben auf Threads aufteilen?

  Alt 29. Dez 2003, 15:30
Wie genau sind Deine Aufgaben organisiert (command pattern)? Wenn Du ohnehin einen Pool von Aufgaben hast (Stapelspeicher, Stack), könnte ein Thread sich an diesen Pool verwenden (Singelton), um die nächste Aufgabe entgegen zunehmen und gleichzeig vom Stapel entfernen (Pop)...
Vielleicht hilft dir Bei Google suchenthread producer consumer weiter?
gruß, choose
  Mit Zitat antworten Zitat
josef

Registriert seit: 31. Jul 2003
56 Beiträge
 
Delphi 2005 Personal
 
#4

Re: Aufgaben auf Threads aufteilen?

  Alt 29. Dez 2003, 18:24
Vielen Dank!
Ihr habt mir beide sehr geholfen
Mal schauen wie ich es Mach
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:28 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz