当前位置:网站首页>Problèmes de concurrence dans l'allocation de mémoire en tas
Problèmes de concurrence dans l'allocation de mémoire en tas
2022-06-24 22:27:00 【Nice2cu Code】
Dans le processus de développement réel,Crée souvent des objets,En tant que machine virtuelle,La sécurité du fil doit être assurée.En général, les machines virtuelles utilisent deux méthodes pour sécuriser les fils
Un.、CAS + Échec de retry
CASEst une façon d'implémenter une serrure optimiste,Supposons qu'il n'y ait pas de conflit pour effectuer une opération à la fois sans verrouillage,Si l'opération échoue en raison d'un conflit, réessayez,Jusqu'à ce que ça marche.Voir le blog pour plus de détails,Adresse de transfert:JavaProgrammation simultanée Pas de serrure(CAS)
2.、TLAB
TLABOui.JavaLe jardin d'Eden de l'espace de tas est divisé pour chaqueThreadEspace mémoire pour,Allouer de la mémoire spécifiquement pour les objets créés par ce thread dans cette zone.
Son objectif principal est d'allouer de la mémoire dans un environnement simultané,Réduire la concurrence entre les Threads pour l'espace mémoire,Accélérer l'allocation de mémoire.
TLABEn fait, c'est toujoursJavaEn tas,Donc, dansTLABObjet de la zone,Peut également être accédé par d'autres Threads.
Si non utiliséTLAB,Plusieurs Threads simultanés créent des objets,Lors de l'allocation de mémoire,C'est possible.JavaApplication de la même position dans le tas,Cela nécessite un verrouillage de cette partie de l'espace mémoire ou l'adoption deCASAttendre que l'Opération assure la sécurité du fil,C'est - à - dire que la zone n'est assignée qu'à un seul thread.
UtiliséTLABAprès,JVMSera dans la mémoire heap pour chaque threadRéservéUne zone mémoire,Au moment où l'opération de réservation a eu lieu,Doit être verrouillé ou adoptéCASProtection par des opérations similaires,Évitez de réserver la même zone à plusieurs fils.Une fois qu'une zone a été assignée à un thread,Plus tard, lorsque le thread doit allouer de la mémoire,La priorité sera accordée aux demandes dans ce domaine.Cette zone est pour ce threadAllocation de mémoireCette opération est privée au fil,Il n'est donc pas nécessaire d'effectuer des opérations telles que le verrouillage lors de la distribution,Cela protège les fils et augmente la vitesse d'allocation.
Attention!: Lorsque le thread crée un objet supérieur àTLABMémoire restante dans ouTLABLorsque la mémoire est épuisée,Re - AdoptionCAS + Échec de l'allocation de mémoire par retry.
边栏推荐
- Redis+caffeine two-level cache enables smooth access speed
- After Firefox drag and drop, Baidu search will always be opened by default. If it is a picture, the picture will be opened.
- Filtered data analysis
- Junior college background, 2 years in Suning, 5 years in Ali. How can I get promoted quickly?
- Process communication mode
- Description of software version selection of kt6368a Bluetooth dual-mode transparent chip
- leetcode:45. Jumping game II [classic greed]
- Use of selector for NiO multiplexing
- Implementation of heap sort and quick sort principle
- leetcode:55. Jumping game [classic greed]
猜你喜欢

Balanced binary search tree

Technology inventory: past, present and future of Message Oriented Middleware

Information update on automatic control principle

Introduction, installation and use of postman tool

AQS源码分析

L2 元年,Arbitrum Nitro 升级带来更兼容高效的开发体验
![Find the maximum value in each tree row [extension of one of the hierarchical traversals]](/img/5b/81ff20b61c0719ceb6873e44878859.png)
Find the maximum value in each tree row [extension of one of the hierarchical traversals]

嵌入式开发:技巧和窍门——干净地从引导加载程序跳转到应用程序代码

A pit in try with resources

专科出身,2年进苏宁,5年跳阿里,论我是怎么快速晋升的?
随机推荐
socket done
Heartless sword Chinese English bilingual poem 003 The sea of books
NIO、BIO、AIO
Collapse code using region
YGG 近期游戏合作伙伴一览
A pit in try with resources
Cannot find reference 'imread' in 'appears in pycharm__ init__. py‘
leetcode:55. 跳跃游戏【经典贪心】
Process communication mode
Rotate the square array of two-dimensional array clockwise by 90 °
Creating files, recursively creating directories
Docker 安装 Redis-5.0.12,详细步骤
Technology Review: what is the evolution route of container technology? What imagination space is there in the future?
Structure du disque
The ktp900f mobile download program of the fail safe mobile panel prompts that the download cannot be performed, and the target device is running or not in the transmission mode
Machine learning: gradient descent method
NiO zero copy
Why can some programmers get good offers with average ability?
Xinlou: Huawei's seven-year building journey of sports health
How to refine permissions to buttons?