Multithreading in Ruby

    Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

    • Multithreading in Ruby

      Guten Tag liebe Community:

      Ich habe ein Geschwindigkeitsproblem, dass ich gerne in Ruby lösen würde. Ich versuche ein kleiner Programm zu schreiben, dass ein Soduko erstellt, es löst und bei Eindeutigkeit auf der Konsole ausgibt. Die Lösen-Funktion ist dabei Rekursiv aufgebaut, um Verzweigungen zu berücksichtigen. Mein problem ist also, dass eben dieses lösen, zu lange dauert und wollte Fragen, ob ich die Rekursion durch Threading beschleunigen kann.

      Long Story Short:
      Ist folgender Pseudocode Threadtauglich, oder bekomm ich dadurch seltsame Bugs? Und wie kann ich sie ggf. verhindern?

      Quellcode

      1. Thread.new(test1 = prüf_funktion(erste_möglichkeit))
      2. Thread.new(test2 = prüf_funktion(zweite_möglichkeit))
      3. if test1 && test2
      4. puts "SUCCES!"
      5. else
      6. puts "Fail!"
      7. end


      Alternative B: Refactoring in C, was mir allerdings nicht so sehr beliebt. (:

      Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von Tray ()

      Quellcode

      1. main()
      2. {
      3. for(;;)
      4. printf("DotaInside - ich war dabei!\n");
      5. }
    • Threading wird dir da nix bringen, weil Ruby keine nativen Threads unterstützt. Oder etwas "deutscher": Ruby läuft eh nur auf einem Prozessor. Du kannst das ganze mit a) forks (auf *NIX Maschinen, sowas gibts net auf Windows) oder b) Rubinius probieren. Vielleicht haben die ja native Threads. Und sie sollen auch mit Zahlen schneller sein als cruby (der offizielle Interpreter).

      Sonst gibts `Thread.value`, was in etwa das macht was du willst.

      Ich vermute dass du einen einfachen Backtracking-Algorithmus hast, den man viel einfacher in Prolog implementieren könnte ;-) Schnapp dir einen effizienteren Algorithmus und das ganze sollte auch schneller laufen. Ruby ist nicht wirklich schnell. Nur meistens schnell genug.

      Oder stell deine Frage auf stackoverflow.com/ und krieg brauchbare Antworten ;-)

      Wir haben 100 Hacker und Hacksen gefragt: "Was die schrecklichste Programmiersprache, in der du je programmiert hast?"
      1. Java
      2. PHP
      3. Visual Basic
      4. BASIC
    • Benutzer online 1

      1 Besucher