1 : 4 nouvelles stratégies de rejet ont été ajoutées. Ce sont : MyAbortPolicy, MyDiscardPolicy, MyDiscardOldestPolicy, MyCallerRunsPolicy
2 : optimisez la méthode de construction du pool de threads MyThreadPoolExecutor, ajoutez la vérification des paramètres et empêchez la transmission aléatoire des paramètres.
3 : C'est l'optimisation la plus importante.
Supprimez la fonction de préchauffage des threads du pool de threads. Étant donné que le préchauffage des threads consomme beaucoup de mémoire, il sera toujours exécuté lorsque nous n'utilisons pas le pool de threads.
En échange, lors de l'appel de la méthode d'exécution pour ajouter une tâche, nous vérifions la taille actuelle de la collection de threads de travail et la comparons avec la valeur de corePoolSize, puis créons et ajoutons des threads au pool de threads via le nouveau MyWorker ( ). L'avantage est que lorsque nous créons, si le pool de threads n'est pas utilisé, cela n'aura aucun impact sur la mémoire actuelle. Lorsqu'il est utilisé, les threads seront créés et placés dans le pool de threads pour être réutilisés. "Constructeur de pool de threads"
On peut voir que ce n'est qu'en allant le pool de threads L'objet thread est créé uniquement lorsque la tâche est libérée. Code source du pool de threads manuscrit d thread Le pool a été optimisé jusqu'à présent, et il peut y avoir plus à l'avenir. Version parfaite, optimisée en permanence.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!