当前位置:网站首页>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.
边栏推荐
- Flutter 库冲突问题解决
- Genesis公链与美国一众加密投资者齐聚Consensus 2022
- NiO, bio, AIO
- Valueerror: cannot take a larger sample than population when 'replace=false‘
- In the era of industrial Internet, there is no Internet in the traditional sense
- 零代码即可将数据可视化应用到企业管理中
- Publicity of the second batch of shortlisted enterprises! Annual Top100 smart network supplier selection
- Machine learning: linear regression
- Structure du disque
- NIO、BIO、AIO
猜你喜欢

Servlet details

Xinlou: Huawei's seven-year building journey of sports health

字符串习题总结2

How does flutter use the online transcoding tool to convert JSON to model

L2 元年,Arbitrum Nitro 升级带来更兼容高效的开发体验

Interviewer: you said you are proficient in redis. Have you seen the persistent configuration?

leetcode:515. 在每个树行中找最大值【无脑bfs】

I really want to send a bunch of flowers

Maximum flow problem

KT6368A蓝牙芯片的主从机之前透传功能说明,2.4G跳频自动连接
随机推荐
leetcode:55. 跳跃游戏【经典贪心】
Find the maximum value in each tree row [extension of one of the hierarchical traversals]
第二批入围企业公示!年度TOP100智能网联供应商评选
EasyBypass
The logic of "Ali health" has long changed
Stl+ tree
first-order-model实现照片动起来(附工具代码) | 机器学习
socket(2)
A girl has been making hardware for ten years. 。。
一个女孩子居然做了十年硬件。。。
04A中断的配置
Common voting governance in Dao
TKKC round#3
Development trend and path of SaaS industry in China
Machine learning: gradient descent method
Kubevela v1.2 release: the graphical operation console velaux you want is finally here
NIO、BIO、AIO
[untitled]
Reduce the pip to the specified version (upgrade the PIP through CMP and reduce it to the original version)
socket(1)