Courriel : [email protected]
Github : https://github.com/qiurunze123
QQ : 3341386488
Groupe QQ : 453259026
Merci de me contacter pour une réimpression et autres opérations ! Je préférerais que vous écriviez une nouvelle version basée sur la mienne.
? Les Trois Hauts ont introduit les soldats et les chevaux sans utiliser au préalable de la nourriture et de l'herbe.
three-high-import est un système d'importation multi-thread à trois niveaux de haute disponibilité, haute fiabilité et hautes performances (le sens de ce projet est une compréhension théorique)
L'importance du projet à trois importations élevées est d'utiliser le multithread pour importer des dizaines de millions de niveaux afin d'atteindre trois objectifs :可扩展
,高性能
,高可用
et高可靠
. Ce projet peut obtenir des rapports de données indifférenciés de haute performance. et importer sur des dizaines de millions de niveaux de données. Par rapport à l'importation ordinaire, les performances sont améliorées d'environ 10 fois et les risques sont évités en cas d'arrêt occasionnel de la machine, de fluctuations du réseau et d'autres situations,数据一致
,数据可靠
et数据重试
,数据报警
et d'autres fonctions peuvent toujours être réalisées dans certaines situations importantes telles que : la réconciliation, Les montants des comptes, les factures, etc. nécessitent des tâches planifiées quotidiennement et des données à haut risque pour garantir que les données sont exemptes d'erreurs ! Multi-threading de basique à avancé, analyse des entrées et sorties et travaux pratiques Enfin, je partagerai un projet sur la façon de mettre en œuvre une stratégie sûre et à haute disponibilité pour de grandes quantités de données (il a été testé avec des centaines de millions). de données), et un exemple d'analyse DEMO d'un système d'importation à trois niveaux haute disponibilité, haute fiabilité et haute performance, comment effectuer le partage de données, l'importation de données, le calcul, la stratégie multi-thread, etc. Cet article appartient à la série avancée. Si vous avez des questions ou de meilleures idées, vous pouvez en discuter ensemble ! Une petite suggestion : avant d'apprendre cette série de connaissances, si vous n'avez jamais été exposé à SpringBoot
, CountDownLatch
,线程池
,工作队列
,工作窃取等
, alors je vous suggère de rechercher sur Internet une introduction rapide à chaque élément de connaissance. , ou vous pouvez télécharger ce projet et apprendre en le faisant. Mon projet est complètement pratique et expliqué. Je ne veux pas écrire un tas d'articles et nous gâcher la vie. Vous ne comprenez toujours pas le sens intérieur. pour comprendre, il suffit d'apprendre en le faisant. Allez ??
- Trois projets à forte importation
- conception de table
- Comment les données sont partagées
- Comment atteindre la haute disponibilité
- Comment atteindre des performances élevées
- Comment atteindre une fiabilité élevée
- Comment personnaliser le pool de threads, l'utiliser et l'importer
- Performances d'importation de données (la version précédente de Sangao prenait environ 13 secondes pour importer 100 000 données. La nouvelle version est toujours en développement)
- Effectuer un fractionnement des threads pour allouer des ressources
Version mise à jour avant le multithreading - Veuillez entrer le chemin du code : com.geek.threadandjuc
Table des matières
? Bases du multithread Java
- Bases du multithreading
- Plusieurs notions à connaître
- De combien de façons existe-t-il d’implémenter le multithreading ?
- Quelle est la différence entre utiliser runnable en multi-threading et hériter de la classe Thread ?
- Comment interrompre correctement et gracieusement les threads en multi-threading
- Erreur de flux de machine d'état de cycle de vie multithread et déclaration d'erreur
- Flux de machine d'état de cycle de vie multithread
- Classes Thread et Objet
- Propriétés importantes du multithreading
- Mécanisme de gestion des exceptions multithread
- Interprétation détaillée de la fonction et de la méthode Wait Notify Notifyall Join Sleep Yield multithread
- Quels problèmes le multithreading peut-il causer ?
- Plusieurs modèles singleton
- conteneur simultané
- Introduction à la carte
- vecteur et table de hachage
- ConcurrentHashMap
- CopyOnWriteArrayList
- File d'attente de blocage
?Obtenir ThreadLocal
- Obtenir ThreadLocal
- Introduction aux scénarios d'utilisation qualitatifs de ThreadLocal
- Certaines méthodes de ThreadLocal sont utilisées
- Analyse du code source ThreadLocal
- Fuite de mémoire ThreadLocal
- ThreadLocal pour éviter les fuites de mémoire
- Application de ThreadLocal au printemps
? Pool de threads
- pool de threads
- Analyse de haut niveau du pool de threads JDK
- Qu'est-ce que le pool de threads
- Inconvénients de créer des fils de discussion plusieurs fois
- Quand utiliser le pool de threads
- Avantages des pools de threads
- Cadre d'exécution
- Comment utiliser les fonctions de hook pour les opérations de pool de threads
- Attributs clés du pool de threads
- Propriétés importantes du multithreading
- Implémentation spécifique du pool de threads
- Création du pool de threads Z
- Explication des paramètres du pool de threads
- Surveillance du pool de threads
- Analyse du code source du pool de threads
- méthode d'exécution
- Méthode addWorker
- Classe ouvrière
- Méthode runWorker
- Méthode getTask
- Méthode processWorkerExit
- résumé
- Méthode processWorkerExit
- Code du pool de threads manuscrit
?Mise à jour avancée multi-thread
? Sujet de sécurité multithread
- pool de threads
- Il existe plusieurs types de problèmes de sécurité des threads
- Quels scénarios nécessitent une attention particulière aux problèmes de sécurité des threads ?
- Contexte de commutation multithread
- Spécial impasse
Partage de ju multithread
https://github.com/qiurunze123/threadandjuc/blob/master/docs/threadinterview.md
Sans le savoir, il a été mis à jour depuis six mois. Des bases à la simultanéité en passant par l'application directe dans les projets, de nombreux endroits ne sont pas très bons, mais c'est un test pour une personne. De la compréhension à l'application à l'écriture, c'est un processus fastidieux.
Cela a pris beaucoup de temps et de travail, mais je suis heureux de ne pas avoir abandonné et d'avoir finalement terminé. J'espère obtenir les corrections et les opinions de tout le monde, et j'espère aider davantage de personnes.
千岩万壑不辞劳 远看方知出处高 溪涧岂能留得住 终归大海做波涛 2019/9/24