Table des matières
Bref historique
Avantages des threads
Risque lié aux threads
Maison Java javaDidacticiel Une brève introduction à JAVA

Une brève introduction à JAVA

Jun 23, 2017 pm 01:52 PM
笔记 简介 读书

Bref historique

Les premiers ordinateurs n'incluaient pas de système d'exploitation. Ils n'exécutaient qu'un seul programme du début à la fin, et ce programme avait accès à toutes les ressources de l'ordinateur. Avec le développement des ordinateurs et l’émergence des systèmes d’exploitation, les ordinateurs peuvent exécuter plusieurs programmes en même temps, et chaque programme s’exécute selon un processus distinct. Pourquoi faire ça ? Principalement basé sur les raisons suivantes :

1.Utilisation des ressources Pendant que le programme attend, l'ordinateur peut exécuter un autre programme, et la même ressource peut être utilisée par différents programmes, ce qui améliore sans aucun doute utilisation des ressources.
2.Équité Différents utilisateurs et programmes ont les mêmes droits d'utilisation de l'ordinateur. Chaque programme partage les ressources via un découpage temporel, au lieu d'attendre la fin de l'exécution du programme précédent avant de démarrer le programme suivant.
3.Commodité Chaque programme fonctionne indépendamment et communique entre eux si nécessaire, ce qui est plus facile à mettre en œuvre qu'un seul programme accomplissant toutes les tâches.

Depuis que les ordinateurs ont évolué d'une tâche unique à une tâche multitâche, les programmes peuvent naturellement évoluer des programmes en série traditionnels aux programmes simultanés.

L'avantage des programmes en série est qu'ils sont simples et intuitifs. Mais les trois raisons ci-dessus ont également provoqué l'émergence de threads. L'ordinateur ci-dessus peut exécuter des programmes dans des processus distincts, et les threads permettent à plusieurs flux de contrôle de programme d'exister au sein du même processus Plusieurs threads d'un programme peuvent également être programmés pour être exécutés par plusieurs processeurs en même temps. Cela équivaut à l'ordinateur exécutant plusieurs programmes (processus) en même temps et au programme exécutant plusieurs threads en même temps. Autrement dit, exécuter des threads au sein du processus.

Les threads sont également appelés processus légers. Les systèmes d'exploitation d'aujourd'hui sont tous programmés avec des threads comme unité de base. Étant donné que les ressources sont partagées entre les threads, s'il n'y a pas de mécanisme de synchronisation clair, cela entraînera une exécution désordonnée entre les threads, des erreurs ou des échecs de données et des exceptions. C’est souvent là que réside la difficulté de la programmation concurrente.

De mon point de vue, la programmation dite concurrente est l'utilisation de threads. Les threads peuvent convertir de nombreux flux de travail asynchrones en flux de travail en série, et la programmation simultanée consiste à réaliser une synchronisation dans des situations asynchrones pour répondre aux besoins.

Alors quels sont les avantages et les risques des threads ?

Avantages des threads

Les threads peuvent réduire efficacement les coûts de développement et de maintenance des programmes et améliorer les performances. Réduisez la complexité du code et simulez mieux les méthodes de travail humaines.

Avantage 1. Faites jouer pleinement les fonctions puissantes des systèmes multiprocesseurs de plus en plus parfaits, rendant le rôle des threads particulièrement évident. Étant donné que différents threads peuvent être planifiés par plusieurs processeurs en même temps, en particulier lors des opérations d'E/S, le temps d'attente du programme est réduit. Les multiprocesseurs améliorent l'efficacité de l'exécution du programme, augmentant ainsi le débit du système.
Avantage 2. Réduisez la difficulté de modélisation. Il est plus facile de faire la même chose tout le temps que de faire plusieurs choses. Utilisez des threads pour affiner les tâches du programme et attribuer plusieurs tâches à plusieurs threads. Chaque thread a une seule tâche et communique entre eux si nécessaire. Il est moins coûteux qu'un seul thread de changer de tâche.
Avantage 3. Simplifiez le traitement des événements asynchrones Lorsqu'une requête est émise pour attendre une réponse, l'ensemble du programme doit-il attendre ? Cela signifie que toutes les autres demandes seront bloquées. Tout comme lorsque vous discutez, l'autre partie doit répondre avant que vous puissiez prononcer la phrase suivante. C'est évidemment déraisonnable. Si chaque requête est traitée par un thread, les threads sont indépendants et ne s'influencent pas les uns les autres, ce qui résout le problème. Bien sûr, si vous devez savoir ce que l’autre partie a dit en répondant dans une discussion, faites attention à la sécurité des threads.
Avantage 4. Interface utilisateur plus réactive Les programmes GUI traditionnels sont monothread. Si l'un des événements utilisateur prend trop de temps à traiter, l'ensemble du programme sera bloqué, ce qui aggravera l'expérience utilisateur. Si certaines opérations fastidieuses sont affectées à un thread distinct, d'autres événements seront toujours traités par le thread, ce qui rendra l'interface utilisateur fluide.

Risque lié aux threads

La prise en charge des threads est une arme à double tranchant, et le développement de programmes simultanés impose également des exigences de niveau plus élevé aux programmeurs.

Risque 1. Problèmes de sécurité La programmation simultanée peut provoquer des erreurs qui ne se produisent pas dans les programmes monothread.
Risque2. Problème de vivacité La définition de la vivacité est « quelque chose de bien va certainement se produire ». Les boucles infinies dans un seul thread sont des problèmes de vivacité. Si le thread A attend que le thread B libère les ressources qu'il détient et que le thread B ne les a pas libérées, le thread A attendra indéfiniment. Il s'agit d'un problème d'activité.
Risque 3. Problèmes de performance La performance est « la bonne chose se produit le plus rapidement possible ». Une bonne conception de concurrence améliorera les performances, et vice versa, réduira les performances. Après tout, le démarrage de threads consomme également des ressources.

Il existe un bon exemple en matière de sécurité :

value++;
Copier après la connexion

Avec une seule ligne de code, il n'y a aucun problème dans un programme monothread, mais des conséquences inattendues peuvent survenir dans les programmes multithread.

Il y a trois étapes pour exécuter cette ligne de code : 1. Lire la valeur ; 2. Ajouter 1 à la valeur ; 3. Réattribuer la valeur ajoutée à la valeur. Le programme peut être exécuté alternativement par plusieurs threads pendant cette période, si deux threads lisent la valeur en même temps, obtiennent la même valeur et y ajoutent 1 en même temps, le résultat est que différents threads obtiennent la même valeur. . Et nous espérons que cette valeur sera ajoutée deux fois.

Chaque programme Java utilise des threads. Même si vous créez des threads sans les créer explicitement dans le programme, le framework que vous utilisez crée toujours des threads. Ces threads doivent être thread-safe.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Comment déverrouiller tout dans Myrise
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Comment supprimer les notes Xiaohongshu Comment supprimer les notes Xiaohongshu Mar 21, 2024 pm 08:12 PM

Comment supprimer les notes de Xiaohongshu ? Les notes peuvent être modifiées dans l'application Xiaohongshu. La plupart des utilisateurs ne savent pas comment supprimer les notes de Xiaohongshu. Ensuite, l'éditeur propose aux utilisateurs des images et des textes expliquant comment supprimer les notes de Xiaohongshu. un regard ensemble ! Tutoriel d'utilisation de Xiaohongshu Comment supprimer les notes de Xiaohongshu 1. Ouvrez d'abord l'application Xiaohongshu et entrez dans la page principale, sélectionnez [Moi] dans le coin inférieur droit pour accéder à la zone spéciale 2. Ensuite, dans la zone Ma, cliquez sur la page de note comme suit : indiqué ci-dessous, sélectionnez la note que vous souhaitez supprimer ; 3. Accédez à la page de notes, cliquez sur [trois points] dans le coin supérieur droit ; 4. Enfin, la barre de fonctions s'agrandira en bas, cliquez sur [Supprimer] pour terminer.

Les notes supprimées sur Xiaohongshu peuvent-elles être récupérées ? Les notes supprimées sur Xiaohongshu peuvent-elles être récupérées ? Oct 31, 2023 pm 05:36 PM

Les notes supprimées de Xiaohongshu ne peuvent pas être récupérées. En tant que plateforme de partage de connaissances et d'achats, Xiaohongshu offre aux utilisateurs la fonction d'enregistrer des notes et de collecter des informations utiles. Selon la déclaration officielle de Xiaohongshu, les notes supprimées ne peuvent pas être récupérées. La plateforme Xiaohongshu ne propose pas de fonction dédiée à la récupération de notes. Cela signifie qu'une fois qu'une note est supprimée dans Xiaohongshu, qu'elle soit supprimée accidentellement ou pour d'autres raisons, il est généralement impossible de récupérer le contenu supprimé de la plateforme. Si vous rencontrez des circonstances particulières, vous pouvez essayer de contacter l'équipe du service client de Xiaohongshu pour voir si elle peut vous aider à résoudre le problème.

Que dois-je faire si les notes que j'ai publiées sur Xiaohongshu sont manquantes ? Quelle est la raison pour laquelle les notes qu'il vient d'envoyer sont introuvables ? Que dois-je faire si les notes que j'ai publiées sur Xiaohongshu sont manquantes ? Quelle est la raison pour laquelle les notes qu'il vient d'envoyer sont introuvables ? Mar 21, 2024 pm 09:30 PM

En tant qu'utilisateur de Xiaohongshu, nous avons tous été confrontés à la situation où les notes publiées ont soudainement disparu, ce qui est sans aucun doute déroutant et inquiétant. Dans ce cas, que devons-nous faire ? Cet article se concentrera sur le thème « Que faire si les notes publiées par Xiaohongshu sont manquantes » et vous donnera une réponse détaillée. 1. Que dois-je faire si les notes publiées par Xiaohongshu manquent ? Premièrement, ne paniquez pas. Si vous constatez que vos notes manquent, il est essentiel de rester calme et de ne pas paniquer. Cela peut être dû à une défaillance du système de la plateforme ou à des erreurs opérationnelles. Vérifier les enregistrements de version est facile. Ouvrez simplement l'application Xiaohongshu et cliquez sur « Moi » → « Publier » → « Toutes les publications » pour afficher vos propres enregistrements de publication. Ici, vous pouvez facilement trouver des notes publiées précédemment. 3.Repost. Si trouvé

Comment connecter Apple Notes sur iPhone dans le dernier système iOS 17 Comment connecter Apple Notes sur iPhone dans le dernier système iOS 17 Sep 22, 2023 pm 05:01 PM

Liez AppleNotes sur iPhone à l’aide de la fonction Ajouter un lien. Notes : Vous ne pouvez créer des liens entre Apple Notes sur iPhone que si iOS17 est installé. Ouvrez l'application Notes sur votre iPhone. Maintenant, ouvrez la note dans laquelle vous souhaitez ajouter le lien. Vous pouvez également choisir de créer une nouvelle note. Cliquez n'importe où sur l'écran. Cela vous montrera un menu. Cliquez sur la flèche à droite pour voir l'option "Ajouter un lien". Cliquez dessus. Vous pouvez maintenant saisir le nom de la note ou l'URL de la page Web. Ensuite, cliquez sur Terminé dans le coin supérieur droit et le lien ajouté apparaîtra dans la note. Si vous souhaitez ajouter un lien vers un mot, double-cliquez simplement sur le mot pour le sélectionner, sélectionnez "Ajouter un lien" et appuyez sur

Comment ajouter des liens de produits dans les notes dans Xiaohongshu Tutoriel sur l'ajout de liens de produits dans les notes dans Xiaohongshu Comment ajouter des liens de produits dans les notes dans Xiaohongshu Tutoriel sur l'ajout de liens de produits dans les notes dans Xiaohongshu Mar 12, 2024 am 10:40 AM

Comment ajouter des liens de produits dans les notes dans Xiaohongshu ? Dans l'application Xiaohongshu, les utilisateurs peuvent non seulement parcourir divers contenus mais également faire des achats, il y a donc beaucoup de contenu sur les recommandations d'achat et le bon partage de produits dans cette application si vous êtes un expert. sur cette application, vous pouvez également partager des expériences d'achat, trouver des commerçants pour coopérer, ajouter des liens dans des notes, etc. De nombreuses personnes sont prêtes à utiliser cette application pour faire du shopping, car elle est non seulement pratique, mais elle a également de nombreux experts qui en feront recommandations. Vous pouvez parcourir du contenu intéressant et voir s'il existe des produits vestimentaires qui vous conviennent. Voyons comment ajouter des liens de produits aux notes ! Comment ajouter des liens de produits aux notes de Xiaohongshu Ouvrez l'application sur le bureau de votre téléphone mobile. Cliquez sur la page d'accueil de l'application

Benchmark de performances Python ORM : comparaison de différents frameworks ORM Benchmark de performances Python ORM : comparaison de différents frameworks ORM Mar 18, 2024 am 09:10 AM

Les frameworks de mappage objet-relationnel (ORM) jouent un rôle essentiel dans le développement de Python, ils simplifient l'accès et la gestion des données en créant un pont entre les bases de données objet et relationnelles. Afin d'évaluer les performances de différents frameworks ORM, cet article comparera les frameworks populaires suivants : sqlAlchemyPeeweeDjangoORMPonyORMTortoiseORM Méthode de test Le benchmark utilise une base de données SQLite contenant 1 million d'enregistrements. Le test a effectué les opérations suivantes sur la base de données : Insérer : Insérer 10 000 nouveaux enregistrements dans la table Lire : Lire tous les enregistrements de la table Mettre à jour : Mettre à jour un seul champ pour tous les enregistrements de la table Supprimer : Supprimer tous les enregistrements de la table Chaque opération

Introduction au framework Yii : comprendre les concepts de base de Yii Introduction au framework Yii : comprendre les concepts de base de Yii Jun 21, 2023 am 09:39 AM

Le framework Yii est un framework de développement PHP hautes performances, hautement évolutif et hautement maintenable, très efficace et fiable lors du développement d'applications Web. Le principal avantage du framework Yii réside dans ses fonctionnalités et méthodes de développement uniques, tout en intégrant également de nombreux outils et fonctions pratiques. Concept de base du framework Yii, le modèle MVC, Yii adopte le modèle MVC (Model-View-Controller), qui est un modèle qui divise l'application en trois parties indépendantes, à savoir le modèle de traitement de logique métier et le modèle de présentation de l'interface utilisateur. .

Application de Python ORM dans les projets Big Data Application de Python ORM dans les projets Big Data Mar 18, 2024 am 09:19 AM

Le mappage objet-relationnel (ORM) est une technologie de programmation qui permet aux développeurs d'utiliser des langages de programmation objet pour manipuler des bases de données sans écrire directement de requêtes SQL. Les outils ORM en python (tels que SQLAlchemy, Peewee et DjangoORM) simplifient l'interaction avec les bases de données pour les projets Big Data. Avantages Simplicité du code : ORM élimine le besoin d'écrire de longues requêtes SQL, ce qui améliore la simplicité et la lisibilité du code. Abstraction des données : ORM fournit une couche d'abstraction qui isole le code de l'application des détails d'implémentation de la base de données, améliorant ainsi la flexibilité. Optimisation des performances : les ORM utilisent souvent la mise en cache et les opérations par lots pour optimiser les requêtes de base de données, améliorant ainsi les performances. Portabilité : ORM permet aux développeurs de

See all articles