Zum Inhalt springen
L

Das Video kommt von YouTube: erst beim Abspielen verbindet sich die Seite mit YouTube (Google).

C-Programmierung – Producer-Consumer

Josef Hammer12:13 1.115 Aufrufe veröffentlicht Auf YouTube

Das Wichtigste aus dem Video

Tipp auf eine Zeit – das Video springt genau dorthin.

Transkriptautomatisch erstellt · 67 Zeilen
Herunterladen
  1. wofür benötigt dieser fokus süchtigen arge hier konnte ich nur bewerben [Musik] heute geht es um charlie unseren kleinen
  2. schoko elite nager falls euch bekannt vorkommen sollte er war bereits ein statist in mehreren meiner videos kommunikation und er steht insbesondere
  3. auf duplo davon kann er irgendwie einfach nicht genug bekommen zum glück hat er einen großen bruder nämlich niklas und der versorgt ihn
  4. immer mit neuen duclos an immer scheint nun wieder sein blog gegessen hat dann ist der teller natürlich leer und erwartet wieder auf niklas jetzt ist es
  5. allerdings so dass charlie zwar ein extrem um die regionale ist aber er möchte trotzdem nicht ständig hier schauen haye ist da schon etwas ist ja
  6. schon etwas ist ja schon etwas was macht man doch nur wenn man frisch verliebt ist und auf eine nachricht des partners wartet sondern er möchte sich in
  7. stattdessen ganz entspannt hinlegen und darauf warten dass in die class ein signal gibt wenn es da wieder etwas zu holen gibt das heißt so bald nix hier
  8. etwas hingelegt hat wieder für ihn ein neues logo für charlie bereitgestellt hat dann möchte er dass im nieders eine nachricht gibt darauf es gibt wieder was
  9. sollen diesmal sogar seine lieblingsorte die weißen woher kennen wir das problem was wir hier haben ist ein klassisches wie user kannst ja mal problem wir haben
  10. einen die user niklas er darauf warten muss dass dieser gemeinsame bereich frei ist damit er etwas hier hinlegen kann und wir haben einen consumer charlie der
  11. darauf wartet dass hier etwas zu holen ist wir nehmen der einfachheit halber an das ausschließlich ein duplo gleichzeitig ihr platz hat
  12. den hole ich mir doch gleich das heißt nicht dass es sofort essen muss aber hat sich in zumindest einmal geschnappt damit sofort für nachschub gesorgt
  13. werden kann die user niklas kann nur etwas hier hinlegen wenn quasi hier nichts ist und dann gibt er bescheid an den consumer
  14. angeli wer es dann sofort wieder abholen kann charlie wiederum gibt ein signal an niklas hater teller ist er wie er sich
  15. möchte wieder bitte etwas nachschub und dann gibt es eventuell wieder etwas vom regisseur von niklas in diesem fall ein cocos erscheint das pro user consumer
  16. problem ist jetzt natürlich nicht nur auf einen pro user oder einen kanzler beschränkt wir können auch auf jeder seite mehrere verwenden wir könnten
  17. sagen auch urlaub möchte etwas und auch schon glück möchte auch noch etwas davon haben dann würde das an der grundsätzlichen fragestellungen nichts
  18. ändern einzige unterschied ist dass jetzt 30 dieselbe schoko teilen müssten nur einer der drei kann sich diese schoko schnappen zum beispiel könnte ist
  19. dass in diesem fall zurück sein und der würde dann ein signal an nicos geben hey wir brauchen nachschub es kann wieder etwas neues hinlegen und in diesem fall
  20. sagen wir bekommt die benachrichtigung um olaf und urlaub kann sich hier schnappen und schickt seinerseits dann natürlich wieder eine benachrichtigung
  21. an niklas bitte teller ist leer wir brauchen wieder etwas wie kann man dieses video the consumer problem nun mit condition variablen in der
  22. programmiersprache c lösen haben wir schon sein wir verwenden hier zwei threads als ein producer ein consumer also niklas und
  23. charly damit der pro user damit nichts aus überhaupt erst einmal eine schoko hergehen kann muss sie erst einmal sorgen
  24. charlie hat es einfacher er bekommt hier ein duplo zusätzlich brauchen wir die zustands information für diesen gescherten bereich da haben wir zum
  25. einen eine bullische variable ist chocolate on trade das heißt wir merken uns ist überhaupt der zeit etwas drauf ist der teller bereits gefüllt und
  26. natürlich haben wir die tatsächliche schoko auch noch darauf also das was wir eigentlich übergeben möchten wenn wir mit condition variablen arbeiten
  27. brauchen wir immer einen judex für den zugriff auf den gemeinsamen bereich und hier beim producer consumer problem benötigen wir weiters zwei condition
  28. variablen zum einen die condition dies signalisiert eben das kartell voll ist das also etwas abgeholt werden kann weiters haben wir die condition mt damit
  29. signalisiert charlie an niklas also der consumer an dem preview sah dass der teller leer ist und bitteschön etwas nachzufüllen sei im hauptprogramm werden
  30. diese tags und die condition variable initialisiert und anschließend starten wir die beiden frames der eine führt den code für niklas aus für den producer und
  31. der zweite für den code für den casino für charlie aus wir dürfen natürlich nicht vergessen bei beendung des programms vorher diese condition
  32. variablen wieder zu zerstören ebenso wie diese tags was genau macht nun der producer was genau macht niklas die eigentliche produktion erfolgt immer
  33. außerhalb des kritischen bereichs wenn die kritische bereich soll wie wir wissen ja möglichst kurz sein damit wir möglichst viel an neben läufigkeit
  34. erreichen können anschließend locken wir die mit ex das heißt wir möchten nun auf diesen gemeinsamen bereich zu greifen dann prüfen wir erst einmal ab
  35. ist der teller überhaupt leer also so lange der tiger noch befüllt ist also weil dies zu klettern plate solange das der fall ist möchten wir hiermit dieser
  36. condition variable auf diese komischen variable warten das heißt wir rufen hier peapod konkret auf und sagen wir wollen auf die
  37. variable condition and i warten das heißt wir warten auf ein signal dass der teller nun leer ist hierüber geben wir auch immer die nude
  38. ex warum ist das so naja wir müssen im unix besitzen damit wir überhaupt in diesen gemeinsame bereich rein dürfen aber wenn wir warten
  39. dann wird hier automatisch die simyo ticks wieder freigegeben wäre das nicht der fall dann könnte in der zwischenzeit niemand etwas vom
  40. teller unternehmen weil wir ja die semiotik blockieren und sobald dieses condition welt zurückkehrt also bald ist ein signal bekommt dann holte sich diese
  41. musics wieder als es lockt diese musics wieder hier unbedingt immer darauf achten dass sie ein weil verwendet kein normales eve warum ist das nötig es
  42. könnte zu sogenannten spear ihres make-ups kommen darunter versteht man dass ein brett aufgeweckt wird aber die bedingung trotzdem vielleicht nicht oder
  43. nicht mehr erfüllt ist es könnte sein dass wir mehrere producer haben und ein anderer producer uns bereits zuvor gekommen ist und der teller somit schon
  44. wieder gefüllt ist das heißt in diesem fall müssten wir sofort wieder paid content aufrufen und wieder warten jetzt sind ja englischen kritischen bereich
  45. und wir können loslegen hier machen wir wirklich nur das absolut nötigste auf diesem teller legen wir quasi die schoko ab und wir setzen dann
  46. noch das flag dass dieser teller nun gefüllt ist dann senden wir mit pete conway ein signal wohin naja an diese condition vollvariable denn wir möchten
  47. er signalisieren jetzt ist der teller voll und danach geben wir auch schon wieder diese newtec frei wie sie das ganze jetzt für den kummer also für
  48. charlie aus eigentlich ziemlich identisch sobald die erst einmal dem producer programmiert habt ist der kann so einfach denn ihr
  49. müsst einfach nur eine kopie davon anfertigen und die logik entsprechend umkehren also im gegensatz zu vorher wo wir sagten weil ist jack white und plate
  50. interessiert ihn natürlich wann ist quasi dieser teller voll noch nichts da ist dann muss erwarten erwartet natürlich auf conditions sobald wir dann
  51. hier wieder im kritischen bereich sind machen wir im prinzip genau das gegenteil vom producer nämlich wir holen uns diese schokolade vom teller und wir
  52. sagen natürlich der teller ist nun leer anschließend nie wieder ein signal in diesem fall denken wir natürlich condition mt denn wir möchten ja nix
  53. signalisieren also dem producer signalisieren es ist nichts mehr da bitte nachschub und erst wenn wir diese im unix freigegeben haben erst dann
  54. machen wir den zeitaufwändigen teil nämlich in diesem fall ist es so bleibt dann finden wir das doch gleich mal aus
  55. wir sehen sobald hier quasi diese giving chocolate zeile auftaucht folgt unmittelbar auch diese eating zeile das heißt unabhängig davon wie lange quasi
  56. niklas benötigt um eine neue schokolade zu besorgen charlie bekommt sofort die notification und kann unmittelbar reagieren das können wir uns auch
  57. vielleicht in einer zweiten shell ansehen wie viel cpu das überhaupt benötigt 0,0 also praktisch gar nichts in diesem zeitraum zwischen diesen
  58. zeilen der konsum macht in diesem zeitraum nichts denn erwartet nur auf dieses signal und bisher diese signale bekommt kann er sich im prinzip schlafen
  59. legen und das ist ja genau das was wir wollen wir möchten keine cpu zeit sinnlos verheizt
  60. die spannende frage ist jetzt natürlich wie sieht es aus wenn ich nicht nur und nur einen kanzler habe sondern wenn ich mehrere davon habe also wenn es
  61. nicht nur charlie gibt sondern auch noch urlaub und auch noch jean-luc das schöne daran ist es ändert sich eigentlich fast gar nichts im kot es gibt hier
  62. eigentlich nur zwei stellen wo wir etwas ändern müssen das eine ist hier die anzahl der fritz erhöhen also die höhen hier vier fritz ein producer drei
  63. consumer und diese müssen natürlich auch gestartet werden das machen wir am besten in einer schleife damit wären dann allerdings unsere
  64. consumer ein wenig unterscheiden können geben wir hier in eat dog let zusätzlich noch die freddy aus
  65. kontrollieren das wieder und wir sehen nun dieser frist ein anderer consumer als dieser hier als diese hier wichtig mehr als einen pro user haben ist es
  66. genau dasselbe wir sehen also dass pro user consumer problem lässt sich mit konditions variablen sehr sehr einfach lösen
  67. vielen dank fürs zuschauen viel erfolg pickering und [Musik]

Zum Nachlesen