Files |  Tutorials |  Articles |  Links |  Home |  Team |  Forum |  Wiki |  Impressum

Aktuelle Zeit: Do Mär 28, 2024 17:04

Foren-Übersicht » Programmierung » Allgemein
Unbeantwortete Themen | Aktive Themen



Ein neues Thema erstellen Auf das Thema antworten  [ 18 Beiträge ]  Gehe zu Seite Vorherige  1, 2
Autor Nachricht
 Betreff des Beitrags: Re: Asynchrones Design
BeitragVerfasst: Do Jul 21, 2016 19:16 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Nov 08, 2010 18:41
Beiträge: 769
Programmiersprache: Gestern
mhhh da fällt mir gerade was ein. Hast du vielleicht einen guten Algorithmus für Single-Producer & Multi-Consumer Queue mit Listen statt Buffer?

_________________
Meine Homepage


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Asynchrones Design
BeitragVerfasst: Do Jul 21, 2016 20:22 
Offline
DGL Member
Benutzeravatar

Registriert: Di Mai 18, 2004 16:45
Beiträge: 2621
Wohnort: Berlin
Programmiersprache: Go, C/C++
Lumberyard hat eine von Amazon geschriebene Version.
Das ist zumindestens die ich überlegt hab zu übernehmen.

_________________
"Wer die Freiheit aufgibt um Sicherheit zu gewinnen, der wird am Ende beides verlieren"
Benjamin Franklin

Projekte: https://github.com/tak2004


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Asynchrones Design
BeitragVerfasst: Di Aug 09, 2016 17:50 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Nov 08, 2010 18:41
Beiträge: 769
Programmiersprache: Gestern
Mhh so ich habe mir jetzt mal Gedanken um den äußeren "Workflow" gemacht. Mal sehen was ihr dazu meint.

"Stream" ist hier eine generische Klasse welche als Parameter einmal eine Producer-Policy und einmal eine Consumer-Policy. Ich habe dabei zum Beispiel an sowas wie die Anzahl der Threads durch die Config limitieren usw. gedacht. Durch die Policies kann man so dann ganz leicht Spezialisierungen bauen die dafür dann noch optimieren.

Über den "InputStream" kommen nun die ganzen Events und Netzwerk Nachrichten rein. Diese werden dann durch die "WorkProc" Klasse mit Hilfe der verschiedenen Module der "Library" verarbeitet. Also zum Beispiel das Frontend für den Renderer.

Die Aufteilung zwischen "Output" und "Loopback" ergibt übrigens auch Sinn für Single-Threaded, denn so kann man zum Beispiel auch gleich den klassischen Loopback-Buffer für netzwerkeln in einen Abwasch erledigen.

Wenn "Stream" als Ringbuffer implementiert wird und die "Tasks" reine Daten (also keine Continuation) sind, ist das Ganze übrigens auch für Echtzeit geeignet und braucht weniger Code :)


Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.

_________________
Meine Homepage


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 18 Beiträge ]  Gehe zu Seite Vorherige  1, 2
Foren-Übersicht » Programmierung » Allgemein


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 28 Gäste


Du darfst keine neuen Themen in diesem Forum erstellen.
Du darfst keine Antworten zu Themen in diesem Forum erstellen.
Du darfst deine Beiträge in diesem Forum nicht ändern.
Du darfst deine Beiträge in diesem Forum nicht löschen.
Du darfst keine Dateianhänge in diesem Forum erstellen.

Suche nach:
Gehe zu:  
  Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de
[ Time : 0.047s | 19 Queries | GZIP : On ]