Je lis les données de plusieurs ports série. Actuellement, j'utilise un gestionnaire de signal personnalisé (en définissant sa_handler) pour comparer et réactiver les threads en fonction des informations du descripteur de fichier. Je cherchais un moyen d'avoir des threads individuels avec des gestionnaires de signaux uniques, à cet égard, j'ai trouvé que l'appel système choisi doit être utilisé.Sélectionnez() appel système dans les discussions?
Maintenant, j'ai des questions suivantes:
- Si j'utilise un fil (Qt) alors où dois-je mettre l'appel système de sélection pour surveiller le port série?
- L'appel système select est-il sûr?
- Est-ce que le processeur est important parce qu'il y a beaucoup de choses qui se passent dans mon application, y compris la mise à jour de l'interface graphique?
S'il vous plaît ne me dérange pas, si vous trouvez ces questions ridicules. Je n'ai jamais utilisé un tel mécanisme pour la communication série.
Gud info !! Une question .. Comment le thread sait qu'il doit se réveiller si le socket fd est prêt à faire une opération de lecture/écriture. Est-ce que le noyau donne un peu d'interruption au fil? –
@SumitTrehan Le noyau réveille le thread car il place le thread dans un état exécutable, c'est-à-dire que le thread s'exécutera dès qu'il aura le temps CPU. – Medicine