IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Threads & Processus C++ Discussion :

Concurrence et portabilité.


Sujet :

Threads & Processus C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Expert confirmé Avatar de DonQuiche
    Inscrit en
    Septembre 2010
    Messages
    2 741
    Détails du profil
    Informations forums :
    Inscription : Septembre 2010
    Messages : 2 741
    Points : 5 485
    Points
    5 485
    Par défaut Concurrence et portabilité.
    Bonjour à tous.

    Je n'avais pas fait de gros projet C++ depuis un bout de temps et je me trouve un peu largué. Il se trouve que j'ai besoin de développer une petite biblio pour iOS, Android, Windows, Mac et Linux. Celle-ci sera consommée par divers front-ends écrits dans d'autres langages.

    J'ai d'abord besoin pour les plateformes mentionnées de threads, mutexes et condition variables. J'ai évidemment pensé aux pthreads mais il semble que pour Windows il faille déjà passer par une implémentation tierce-partie (si j'ai bien saisi, Windows XP n'inclue pas d'implémentation standard des pthreads) et je me demande si j'aurai plus de succès sur les autres plateformes. A défaut, boost supporte t-il les plateformes mentionnées ? Je n'ai pas pu trouver de réponse claire. Dernière alternative, trouve t-on déjà des implémentation des nouvelles biblios standard (c++ 11) pour ces plateformes ou a t-on une idée de leurs dates d'arrivées ? Enfin, quid des performances : avec la solution que vous me recommanderez, suis-je par exemple assuré dans tous les cas qu'un mutex s'appuiera bien sur les primitives du système et sera pas implémenté comme un spin lock sur certaines ?

    Dernière question relative aux instructions atomiques (incrémentation, décrémentation, compare-and-swap 32 et 64 bits) sur d'autres processeurs que x86 : existent-elles aujourd'hui sur tous les processeurs grand publics (et notamment architectures ARM) ou pas ? Si oui existe t-il des intrinsèques communs et bien supportés (je pense à gcc mais je suis ouvert à toute proposition) ?

    Merci d'avance pour toute l'aide que vous pourrez m'apporter afin d'éclaircir mes idées bien embrouillées.


    EDIT: Dans le même genre, si vous avez une recommandation côté réseaux (téléchargement asynchrone d'un fichier via ftp ou http) pour ces mêmes plateformes, je suis preneur.

  2. #2
    Membre du Club
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2008
    Messages
    42
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Serbie

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2008
    Messages : 42
    Points : 55
    Points
    55
    Par défaut
    http://pocoproject.org, je l'ai testé avec Windows/Linux/FreeBSD et ca marche bien, je sais pas pour Android et iOS. La documentation (http://pocoproject.org/features.html) dits que iOS, Mac OS et Android sont supportés aussi.

  3. #3
    Expert confirmé Avatar de DonQuiche
    Inscrit en
    Septembre 2010
    Messages
    2 741
    Détails du profil
    Informations forums :
    Inscription : Septembre 2010
    Messages : 2 741
    Points : 5 485
    Points
    5 485
    Par défaut
    Merci pour la suggestion. J'avais déjà entendu parler de POCO sans jamais aller y voir de plus près et j'ai été assez séduit par le fait de voir (enfin) une information claire : liste des plateformes supportées, doc introductive concise et efficace, code clair, etc. L'idée d'utiliser tout un framework quand je n'en ai que peu le besoin me chagrine un peu mais il se peut que je me laisse séduire par celui-ci.

  4. #4
    Membre expert
    Avatar de Klaim
    Homme Profil pro
    Développeur de jeux vidéo
    Inscrit en
    Août 2004
    Messages
    1 717
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur de jeux vidéo
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 1 717
    Points : 3 344
    Points
    3 344
    Par défaut
    A défaut, boost supporte t-il les plateformes mentionnées ?
    A ce que je sache, il y a des adaptations de boost pour Android et IPhone (voir sur github je crois).

    Sinon oui les autres plateformes sont supportées.

  5. #5
    Expert confirmé Avatar de DonQuiche
    Inscrit en
    Septembre 2010
    Messages
    2 741
    Détails du profil
    Informations forums :
    Inscription : Septembre 2010
    Messages : 2 741
    Points : 5 485
    Points
    5 485
    Par défaut
    Merci pour la suggestion. J'ai été faire un petit tour et, malheureusement, je n'ai trouvé que des initiatives individuelles sans grande documentation ni support. Qui plus est, je suis tombé sur quelques billets de blogs et posts de forums révélant des erreurs de compilation sur iPhone ou Android pour certaines parties du code. Difficile d'en conclure s'il ne s'agit que de quelques heures de travail en perspective à serpenter entre les macros ou si le problème est plus profond.

  6. #6
    Membre expert
    Avatar de Klaim
    Homme Profil pro
    Développeur de jeux vidéo
    Inscrit en
    Août 2004
    Messages
    1 717
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur de jeux vidéo
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 1 717
    Points : 3 344
    Points
    3 344
    Par défaut
    De toutes façons il n'y a pas (à ma connaissance) de version officielle pour ces deux plateformes, donc je te suggère de voir ce qui a l'air le plus stable et de tester avec un une appli très simple.

    Il me semble que les problemes dépendent de la bibliothèque utilisée, donc peut etre que boost.thread sait de quoi il parle.


    Sinon l'alternative ça sera just::thread qui est l'implémentation de celui qui a proposé la lib de threading du standard, mais je ne sais pas si elle marche avec IOS et Android. Peut être en demandant sur le forum?

    Je vais voir si yen a qui ont des suggestions sur stackoverflow.


    edit> Là : http://stackoverflow.com/questions/9...ndroid-and-ios

Discussions similaires

  1. Environnement graphique et portabilité
    Par viddak dans le forum Linux
    Réponses: 3
    Dernier message: 11/06/2003, 13h57
  2. portabilité d'une interface
    Par marou dans le forum JBuilder
    Réponses: 4
    Dernier message: 21/03/2003, 08h53
  3. Réponses: 11
    Dernier message: 17/03/2003, 10h56
  4. portabilité et BDD
    Par delire8 dans le forum C++Builder
    Réponses: 7
    Dernier message: 04/07/2002, 10h59

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo