编程知识 cdmana.com

Site Web pour partager vos expériences d'entrevue, Tencent Bull vous apprend à écrire votre propre cadre Java!

1、Changement de contexte

Définition du contexte

cpuEn cas de processus ou de changement de fil,Ensemble de données dépendant,Par exemple, une fonction a une variable externe,Exécution de la fonction,La variable externe doit être obtenue,L'ensemble de ces valeurs variables est le contexte.

Cause des problèmes

PourCPUTâches intensives,Un changement de contexte se produit dans le traitement multithreadé,Affecte la vitesse d'exécution,SiIODense,Les avantages de la technologie Multi - Threading sont évidents.

Comment réduire le changement de contexte

  • Programmation simultanée sans verrouillage,Un changement de contexte se produit lors de l'acquisition et de la libération de la serrure,L'efficacité est affectée par le Multithreading.La programmation simultanée sans verrouillage consiste à découper les données,Chaque thread gère son propre module.Par exemple,LongAdderCode de la partie centrale.
  • CASAlgorithmes,Programmation simultanée viaCASAlgorithme pour mettre à jour les données,Sans avoir à le verrouiller.Par exemple:JavaDeatomicLes classes d'outils sous le paquet.
  • Utiliser un minimum de Threads,Réduire la création inutile de Threads,Pools de Threads personnalisés.
  • Utilisation de la co - procédure,Maintenir l'ordonnancement multitâche dans un seul thread,Transfert entre les tâches de traitement,GolangTrès puissant pour l'utilisation des co - programmes.

2、Blocage

Définition de l'impasse

L'impasse est l'abréviation de l'impasse du processus,C'est parDijkstraÀ1965La première chose que j'ai faite quand j'ai étudié l'algorithme du banquier.
L'impasse du système ne gaspille pas seulement beaucoup de ressources du système,Il a même causé l'écrasement de tout le système,Avec des conséquences désastreuses.

Site Web pour partager vos expériences d'entrevue,Tencent Daniel t'a appris à écrire.JavaCadre!_Arrière - plan

Cause de l'impasse

  • Insuffisance des ressources du système
  • Mauvais ordre de progression du processus
  • Allocation déraisonnable des ressources

Conditions nécessaires à la création d'une impasse

  • Conditions d'exclusion mutuelle:Une ressource ne peut être utilisée que par un processus ou un thread.
  • Conditions de demande et de conservation:Un processus ou un thread,Un blocage s'est produit lors de la demande de ressources,Tenir à jour les ressources déjà acquises.
  • Conditions inaliénables:La ressource que le processus ou le thread obtient,Quand ce n'est pas fait,Pas de privation forcée.
  • Conditions d'attente cycliques:Un certain nombre de processus ou de Threads forment une relation de ressources avec une boucle d'attente de bout en bout.

Ces conditions quartiles sont nécessaires pour créer une impasse,Tant qu'il y a une impasse,Ces conditions doivent être remplies.,Si l'une des conditions ci - dessus n'est pas remplie,Il n'y aura pas d'impasse..

Comment éviter une impasse

  1. Obtenir la serrure dans un ordre déterminé
  2. Délai de verrouillage

LockL'interface fournitboolean tryLock(long time, TimeUnit unit) throws InterruptedExceptionMéthodes,Cette méthode permet d'attendre la serrure pendant une période fixe,Ainsi, le thread peut obtenir un délai de verrouillage,Toutes les serrures obtenues avant la libération active.

Enfin

Quelle que soit l'entreprise,Tout le monde attache de l'importance à la Fondation,Les grandes usines accordent plus d'attention à la profondeur et à l'étendue de la technologie,L'entrevue est un processus de sélection bidirectionnel,N'interviewez pas avec peur.,Pas bon pour soi - même..En même temps, il ne s'agit pas seulement de salaire.,Et ça dépend si tu aimes vraiment cette compagnie,Est - ce que je peux vraiment faire de l'exercice?.

Pour les points techniques de l'entrevue ci - dessus,Je partage des informations ici aussi.,J'espère que ça aidera tout le monde.

 CodeChinaProjet Open Source:【Grandes usines de première ligneJavaAnalyse des questions d'entrevue+Résumé de base notes d'étude+Dernière vidéo d'explication】

Site Web pour partager vos expériences d'entrevue,Tencent Daniel t'a appris à écrire.JavaCadre!_Arrière - plan_02

Site Web pour partager vos expériences d'entrevue,Tencent Daniel t'a appris à écrire.JavaCadre!_Java_03

Site Web pour partager vos expériences d'entrevue,Tencent Daniel t'a appris à écrire.JavaCadre!_Java_04

版权声明
本文为[Programme Jasmine]所创,转载请带上原文链接,感谢
https://cdmana.com/2021/09/20210915055829945D.html

Scroll to Top