achim : Threading

hallo,
hab ein skript geschrieben, das die Thread-Module benutzen soll.
(use Thread;)

die Codezeile:
$Config{usethreads} or die "In dieser Perl-Version ($]) ist Treading nicht moeglich.\n";

liefert folgende Ausgabe:
In dieser Perl-Version (5.006) ist Threading nicht moeglich.

Ich dachte Threading sei ab der Version 5.005 möglich?

gruss Achim

  1. Hi Achim,

    das bedeutet noch nicht unbedingt, daß threading icht möglich ist.
    Es bedeutet lediglich, daß $Config{usethreads} nicht definiert oder irgendwie false ist.
    Vielleicht wird es ja mit einem kleinem c geschrieben, oder printe doch einfach mal $config{usethreads} und mal sehen was über drin steht.

    Ciao
    Cruz

    hallo,
    hab ein skript geschrieben, das die Thread-Module benutzen soll.
    (use Thread;)

    die Codezeile:
    $Config{usethreads} or die "In dieser Perl-Version ($]) ist Treading nicht moeglich.\n";

    liefert folgende Ausgabe:
    In dieser Perl-Version (5.006) ist Threading nicht moeglich.

    Ich dachte Threading sei ab der Version 5.005 möglich?

    gruss Achim

    1. hallo cruz,

      Hi Achim,

      das bedeutet noch nicht unbedingt, daß threading icht möglich ist.
      Es bedeutet lediglich, daß $Config{usethreads} nicht definiert oder irgendwie false ist.
      Vielleicht wird es ja mit einem kleinem c geschrieben, oder printe doch einfach mal $config{usethreads} und mal sehen was über drin steht.

      print $Config{usethreads}; bringt folgende Ausgabe:
      Use of uninitialized value in print at ... (liegt wahrscheinlich an use strict; - oder?)

      und dann in der zeile, wo ich meinen Thread erzeuge:
      (my $thr_write = new Thread &write;)

      No threads in this perl at ...

      Ciao
      Cruz

      thanks schon mal
      achim

      1. Moin,

        print $Config{usethreads}; bringt folgende Ausgabe:
        Use of uninitialized value in print at ... (liegt wahrscheinlich an use strict; - oder?)

        aeh, du hast schon das Modul 'Config' eingebunden?

        Viele Gruesse,

        n.d.p.

        1. Moin,

          print $Config{usethreads}; bringt folgende Ausgabe:
          Use of uninitialized value in print at ... (liegt wahrscheinlich an use strict; - oder?)

          aeh, du hast schon das Modul 'Config' eingebunden?

          Viele Gruesse,

          n.d.p.

          das hab ich ... danke.

  2. Hi!

    Ich dachte Threading sei ab der Version 5.005 möglich?

    Das kommt nicht nur auf die Version an, sondern auch darauf, ob Dein Perl mit Thread-Support kompiliert wurde. Siehe
    perldoc perlthrtut  Abschnitt Basic Thread Support.

    So long

    1. hallo,

      Das kommt nicht nur auf die Version an, sondern auch darauf, ob Dein Perl mit Thread-Support kompiliert wurde. Siehe

      und ich dachte eben, dass active perl 5.6 mit threads kompiliert ist.
      hab inzwischen mitgekriegt, dass dem nicht so ist.

      trotzdem danke.
      achim

      1. Hi nochmal!

        und ich dachte eben, dass active perl 5.6 mit threads kompiliert ist.
        hab inzwischen mitgekriegt, dass dem nicht so ist.

        Aeh... in der Aussage ist keine Logik. *g* Also das geht so: Perl liegt ja primaer erstmal als SourceCode (in C geschrieben) vor, es ist ein Open-Source-Projekt. Nun wird aus diesem SourceCode durch Compilieren und Linken (insgesamt nennt man das dann build) ein ausfuehrbares Programm erzeugt. (Fuer jede Plattform muss dies separat durchgefuehrt werden.) Dabei koennen - grob gesagt - Optionen angegeben werden, unter anderem auch, ob das Threading unterstuetzt werden soll. (Es mag Plattformen geben, auf denen das vom Betriebssystem unzulaenglich unterstuetzt wird, deshalb will man das evtl. ausschalten. Ausserdem hatte Threading zumindest in 5.005 noch Beta-Status.) Welche Optionen gesetzt wurden, genau das kannst Du spaeter in %Config nachlesen.

        Diese Compilierung kann aber natuerlich nicht nur einmal fuer eine Perl-Version durchgefuehrt werden. Es gibt z.B. bei Perl genauso wie bei Linux verschiedene Distributoren (allerdings kenne ich nur ActiveState), jeder von denen baut seine eigene Executable. Man koennte also sicherlich sagen, ActiveState's Build von Perl 5.6 hat Threading support einkompiliert (wenn sie das denn haben - weiss ich nicht), aber allgemein fuer die Version 5.6 von Perl ist diese Aussage nicht sinnvoll.

        Jetzt endgueltig verwirrt? - Gut. ;-)

        So long

        1. Moin Calo,

          und ich dachte eben, dass active perl 5.6 mit threads kompiliert ist.
          hab inzwischen mitgekriegt, dass dem nicht so ist.
          [...] Man koennte also sicherlich sagen, ActiveState's Build von Perl 5.6 hat Threading support einkompiliert (wenn sie das denn haben - weiss ich nicht),

          ja, koennte man ;)

          aber allgemein fuer die Version 5.6 von Perl ist diese Aussage nicht sinnvoll.

          jup, stimmt.

          Viele Gruesse,

          n.d.p.

          1. Tach n.d.

            [...] Man koennte also sicherlich sagen, ActiveState's Build von Perl 5.6 hat Threading support einkompiliert (wenn sie das denn haben - weiss ich nicht),

            ja, koennte man ;)

            Willst Du damit andeuten, sie haben es nicht? *g*