Java memory model (original) (raw)

About DBpedia

The Java memory model describes how threads in the Java programming language interact through memory. Together with the description of single-threaded execution of code, the memory model provides the semantics of the Java programming language. The original Java memory model developed in 1995, was widely perceived as broken, preventing many runtime optimizations and not providing strong enough guarantees for code safety. It was updated through the Java Community Process, as Java Specification Request 133 (JSR-133), which took effect back in 2004, for Tiger (Java 5.0).

Property Value
dbo:abstract The Java memory model describes how threads in the Java programming language interact through memory. Together with the description of single-threaded execution of code, the memory model provides the semantics of the Java programming language. The original Java memory model developed in 1995, was widely perceived as broken, preventing many runtime optimizations and not providing strong enough guarantees for code safety. It was updated through the Java Community Process, as Java Specification Request 133 (JSR-133), which took effect back in 2004, for Tiger (Java 5.0). (en) Модель памяти Java (англ. Java Memory Model, JMM) описывает поведение потоков в среде исполнения Java. Модель памяти — часть семантики языка Java, и описывает, на что может и на что не должен рассчитывать программист, разрабатывающий ПО не для конкретной Java-машины, а для Java в целом. Исходная модель памяти Java (к которой, в частности, относится «потоколокальная память»), разработанная в 1995 году, считается неудачной: многие оптимизации невозможно провести, не потеряв гарантию безопасности кода. В частности, есть несколько вариантов написать многопоточного «одиночку»: * либо каждый акт доступа к одиночке (даже когда объект давно создан, и ничего уже не может измениться) будет вызывать межпоточную блокировку; * либо при определённом стечении обстоятельств система выдаст недостроенного одиночку; * либо при определённом стечении обстоятельств система создаст два одиночки; * либо конструкция будет зависеть от особенностей поведения той или иной машины.(См. также: Double checked locking) В J2SE 5.0 (30 сентября 2004) появилась новая модель памяти, разработанная через Java Community Process под названием JSR-133. Она лучше отражала принципы работы современных процессоров и компиляторов, и другие языки брали идеи из модели Java. Основной вклад в её создание внесли Сарита Адве, Джереми Мейсон и . (ru)
dbo:wikiPageExternalLink http://www.cs.umd.edu/~pugh/java/memoryModel/ http://shipilev.net/blog/2014/jmm-pragmatics/ https://jakubstransky.com/2017/11/27/structure-of-java-virtual-machine-jvm/ http://www.cs.umd.edu/users/pugh/java/memoryModel/jsr-133-faq.html https://web.archive.org/web/20130925080251/http:/g.oswego.edu/dl/jmm/cookbook.html https://www.ibm.com/developerworks/library/j-jtp02244/j-jtp02244-pdf.pdf https://www.ibm.com/developerworks/library/j-jtp03304/j-jtp03304-pdf.pdf http://jcp.org/en/jsr/detail%3Fid=133
dbo:wikiPageID 6814676 (xsd:integer)
dbo:wikiPageLength 9158 (xsd:nonNegativeInteger)
dbo:wikiPageRevisionID 1080399544 (xsd:integer)
dbo:wikiPageWikiLink dbr:C++ dbr:Lock_(computer_science) dbc:Java_platform dbr:Formal_semantics_of_programming_languages dbr:Happened-before dbc:Consistency_models dbr:Java_(programming_language) dbr:Java_version_history dbr:Java_Community_Process dbr:Java_concurrency dbr:Java_virtual_machine dbr:Operating_systems dbr:Partial_order dbr:Java_Language_Specification dbr:Processors dbr:Multiprocessor dbr:Thread_(computer_science) dbr:Memory_model_(computing)
dbp:wikiPageUsesTemplate dbt:Reflist
dcterms:subject dbc:Java_platform dbc:Consistency_models
rdf:type yago:WikicatConsistencyModels yago:Assistant109815790 yago:CausalAgent100007347 yago:LivingThing100004258 yago:Model110324560 yago:Object100002684 yago:Organism100004475 yago:Person100007846 yago:PhysicalEntity100001930 yago:Worker109632518 yago:YagoLegalActor yago:YagoLegalActorGeo yago:Whole100003553
rdfs:comment The Java memory model describes how threads in the Java programming language interact through memory. Together with the description of single-threaded execution of code, the memory model provides the semantics of the Java programming language. The original Java memory model developed in 1995, was widely perceived as broken, preventing many runtime optimizations and not providing strong enough guarantees for code safety. It was updated through the Java Community Process, as Java Specification Request 133 (JSR-133), which took effect back in 2004, for Tiger (Java 5.0). (en) Модель памяти Java (англ. Java Memory Model, JMM) описывает поведение потоков в среде исполнения Java. Модель памяти — часть семантики языка Java, и описывает, на что может и на что не должен рассчитывать программист, разрабатывающий ПО не для конкретной Java-машины, а для Java в целом. Исходная модель памяти Java (к которой, в частности, относится «потоколокальная память»), разработанная в 1995 году, считается неудачной: многие оптимизации невозможно провести, не потеряв гарантию безопасности кода. В частности, есть несколько вариантов написать многопоточного «одиночку»: (ru)
rdfs:label Java memory model (en) Модель памяти Java (ru)
owl:sameAs freebase:Java memory model yago-res:Java memory model wikidata:Java memory model dbpedia-ru:Java memory model https://global.dbpedia.org/id/4oB3w
prov:wasDerivedFrom wikipedia-en:Java_memory_model?oldid=1080399544&ns=0
foaf:isPrimaryTopicOf wikipedia-en:Java_memory_model
is dbo:wikiPageRedirects of dbr:Java_Memory_Model
is dbo:wikiPageWikiLink of dbr:Memory_model_(programming) dbr:Java_Memory_Model dbr:Java_version_history dbr:Java_concurrency
is foaf:primaryTopic of wikipedia-en:Java_memory_model