next up previous contents
suivant: Compiler une version multi-threadée monter: La programmation multi-threadée précédent: Les gains de la   Table des matières

Tester si Perl est compilé avec le multi-threading

Avant de faire un programme multi-threadé il vous faut vérifier si votre installation de Perl supporte ce type de programmation. En effet, threads n'est pas un module ordinaire du CPAN : il fait partie intégrante de Perl. Dans les faits, il est tellement intégré à Perl que si votre installation n'a pas été compilée avec les bonnes options, il vous faudra re-compiler Perl.

Pour vérifier si Perl a été compilé avec l'option multi-threading utilisez l'option -V :

gulliver [~] perl -V
Summary of my perl5 (revision 5 version 8 subversion 5) configuration:
  Platform:
    osname=linux, osvers=2.4.24, archname=i686-linux-thread-multi
    uname='linux gulliver 2.4.24 #4 sat jan 31 10:29:27 cet 2004 i686 unknown '
    config_args=''
    hint=recommended, useposix=true, d_sigaction=define
    usethreads=define use5005threads=undef useithreads=define 
	usemultiplicity=define
    useperlio=define d_sfio=undef uselargefiles=define usesocks=undef
    use64bitint=undef use64bitall=undef uselongdouble=undef
    usemymalloc=n, bincompat5005=undef
  Compiler:

Vérifier le usetreads=define. Sur une version non compilée avec la bonne option, il serait égal à undef.

Sur Linux RedHat ou Mandrake, Perl est pré-compilé avec les bonnes options. Sur d'autres distributions de Linux telles que la Slackware ou la Debian, voire sur les autres Unix lorsque Perl est installé il n'est pas compilé pour supporter le multi-threading et une recompilation s'avére nécessaire.

Il est important de noter que le multi-threading sous Perl n'est relativement stable que depuis la version 5.8.1. Si vous avez une version antérieure de Perl, prévoyer une ré-installation quoi qu'il en soit.

Sur Windows, toutes les versions de Perl supportent le multi-threading de façon native. En effet, l'appel fork() (qui n'existe pas en tant qu'appel système sur cette plateforme) est émulé via le multi-threading.


next up previous contents
suivant: Compiler une version multi-threadée monter: La programmation multi-threadée précédent: Les gains de la   Table des matières
2006-03-15