国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

? Java Java??? Java CAS ?? ?? ??

Java CAS ?? ?? ??

Dec 24, 2020 pm 05:37 PM
cas java ?? ??

java ?? ???????? Java CAS ??? ?????

Java CAS ?? ?? ??

??(??): java ?? ????

1. CAS ??? ?? ??? ??(swap)? ?? ??? ???? ??? ??? ???? ? ???? ???????. CAS ???? ??? ??, ?? ?, ? ???? ? ?? ????? ?????. CAS? ?? ??? ??? ??? ?? ?? ?? ???? ????. ? ?? ??? ??? ??? ?? ? ??? ????. ?? ??? ??? ???? ????.

Java??? CAS? ?? ???? ????. CAS ?? ??? C++ ??? ???? ??? ?????. Java ??? JNI? ?? ????? ???. ?? ?? ??? 3??? ???????.

?? ???? ??? CAS ?? ??? ??? ????. ??? ?? ?????? ???? ????. ???? ?? ?? ??? ???????. ??? ?? ??? ???? ?? ??? ? ? ??? ? ????.

2. ?? ??

??? CPU? ??? ???? ?? ???? ????? ?? ?? ?? ????. ?? ?? ???? ?? ??? ??? ??? ?? ??? ? ?? ????? ?????. ??? ??:

Java CAS ?? ?? ???? ??: "??? ??? ?? ??"

? ??? ??? ??? ??? ?? ????????, ??? ????? ?????. ? ??????? CPU? ? ?? ??? ???? ??? ??? ?? ???? ?????. CPU? ?? ??? ??? ??? ????? ???? ?? ?? ???? ??? ?? ??? ?????? ??? ??? ??? ???, ?? 1? 32?? ??? ??? ?? ???? 64?? ???? ??? ????, ?? 1? ?? ??? ???? ?? ? ? ?? ???. ?? 1? ???? 32?? ???? ? ? ?? 2? ?? 1? ? ??? ???? 64?? ???? ????. ?? 1? ?? 64?? ???? ???? ??? ???? ????? ?? 2? ? ??? ???? ???? ?? ????? ?? ???? ????? ????.

??? ???? ? ??? ?? ??? ??? ????. ?? ??? ???? ?? ??? ??? ?????? ?? ????? 64?? ??? ??? ????? ??? ?? ? ??? ????? ?? ? ? ????.

? ??? ???? Intel ????? ?? ??? ??? ?? ??? ????? ????? ??? ? ??? ??? ?? ? ????. ??? ???? ? ? ?????? ????? ??? ???? ??? ???? ????. ?? ??, ?? ???

?? ? ?? ??? ???? ?????. ? 1? ???? ??? ??? ???? ??? ??? ???. ?? ? CPU ??? ??? ??? ?????. ? ??? ??? ???? ??? ??? ????.

inc dword ptr [...],等價于DEST = DEST + 1。該指令包含三個操作讀->改->寫

?? 1? ???? ??? ???? ? 1? ?? ????? ?????.
  1. ?? 2? ???? ??? ???? ? 1? ????.
  2. Core 1 ????? ?? 1
  3. Core 2 ????? ?? 1
  4. Core 1 ??????. ??? ?? ?? ???? ???
  5. Core 2 ??? ?? ???. back to the memory
  6. ? ??? ??? ?, ???? ?? ?? 2??, 3? ???? ???? ??? ?????. ? ??? ????? ? ? ??? ??? ??? ??? ??? ??? ???? ?? ???? ???. ???? ??? ??? ??? ?????? ? ??? ???? ?? ???? ?????. ? ???? ?? ??? ??? Intel ??? ??? Volume 2 Instruction Set Reference, Chapter 3 Instruction Set Reference A-L? ?????. ???? ??? ?? ?? ??? ???? ????.

LOCK—Assert LOCK# ?? ???

????? LOCK# ??? ?? ??? ?? ?? ?????? ???(
???? ??? ???? ??
). ?? ???? ???? LOCK# ??? ??? ????? ?? ????? ?? ?? ???? ????? ????? ?????.?? ??? ?? ??? ?? ???? ???? LOCK# ??? ?? ?? ???????. ??? ??? ? ????. ??? ?? ?? ???? ????? ?????. ???

ADD, ADC, AND, BTC, BTR, BTS, CMPXCHG, CMPXCH8B, CMPXCHG16B, DEC, INC, NEG, NOT, OR, SBB, SUB, XOR, XADD ? XCHG ?? ?? ??? ? ????.

inc ??? ?? ?? ???? ???? ???? ????? ?? ? ????. ?? ??? ??? ??? inc ???? ???? ?? ?? ???? ????? ??? ??? ??? ?? ? ????. ???? ??? ? ?? ??? ????. ?? ???? ??? ?? ??? ??? ????? ????? ??? ?????? ??? ??? ????.

?? ?????? ????? ?? ??? ?? ??? ??? ????? ????? ?? ? ?? ??? ????. ? ?? ??? ??? ??? ?? ??? ??? ????? ????? ?? ???? ?? ??? ?? ?? ???. ??? ?? ??? ?? ??? ???? ???? ? ???? ?? ??? ?? ?? ??? ?? ? ????. ? ?? ??? ?? ??? ???? ???? ??? ??? ?? ??? ??? ????. ????? ??? LOCK# ??? ??? ??? ?? ??? ?? ??? ???? ??? ??? ????. ? ??? ??? ?? ?? ?? ?? ????? ? ??? ???? ?? ??? ??? ? ????. ??? ??? ?? ???? ??? ??? ? ?? ??? ??? ? ????. ?? ?? ? ?? ??? ?? ??? ??? Intel ??? ??? 3? ????? ??? ???, 8? ?? ???? ??? ??????.

3. ?? ?? ??

?? ?? ??? ???? ?? CAS? ?? ??? ???? ?? ? ????. ?? ?? ??? java.util.concurrent.atomic ???? Atomic ??? AtomicInteger? ?? CompareAndSet ???? ????????. ???? ????. ??? ????? ???? ??? ??? ???? ????. ???? Windows ????? Atomic::cmpxchg ??? ???????. ?? ?????.

public?class?AtomicInteger?extends?Number?implements?java.io.Serializable?{

????//?setup?to?use?Unsafe.compareAndSwapInt?for?updates
????private?static?final?Unsafe?unsafe?=?Unsafe.getUnsafe();
????private?static?final?long?valueOffset;

????static?{
????????try?{
????????????//?計算變量?value?在類對象中的偏移
????????????valueOffset?=?unsafe.objectFieldOffset
????????????????(AtomicInteger.class.getDeclaredField("value"));
????????}?catch?(Exception?ex)?{?throw?new?Error(ex);?}
????}

????private?volatile?int?value;
????
????public?final?boolean?compareAndSet(int?expect,?int?update)?{
????????/*
?????????*?compareAndSet?實際上只是一個殼子,主要的邏輯封裝在?Unsafe?的?
?????????*?compareAndSwapInt?方法中
?????????*/
????????return?unsafe.compareAndSwapInt(this,?valueOffset,?expect,?update);
????}
????
????//?......
}

public?final?class?Unsafe?{
????//?compareAndSwapInt?是?native?類型的方法,繼續(xù)往下看
????public?final?native?boolean?compareAndSwapInt(Object?o,?long?offset,
??????????????????????????????????????????????????int?expected,
??????????????????????????????????????????????????int?x);
????//?......
}

? ??? LOCK_IF_MP ?? ???? ???? cmpxchg ??? ?????. ? ? ???? ?? ?? cmpxchg ??? LOCK_IF_MP? ?? ???? ??? ?????.

//?unsafe.cpp
/*
?*?這個看起來好像不像一個函數(shù),不過不用擔(dān)心,不是重點。UNSAFE_ENTRY?和?UNSAFE_END?都是宏,
?*?在預(yù)編譯期間會被替換成真正的代碼。下面的?jboolean、jlong?和?jint?等是一些類型定義(typedef):
?*?
?*?jni.h
?*?????typedef?unsigned?char???jboolean;
?*?????typedef?unsigned?short??jchar;
?*?????typedef?short???????????jshort;
?*?????typedef?float???????????jfloat;
?*?????typedef?double??????????jdouble;
?*?
?*?jni_md.h
?*?????typedef?int?jint;
?*?????#ifdef?_LP64?//?64-bit
?*?????typedef?long?jlong;
?*?????#else
?*?????typedef?long?long?jlong;
?*?????#endif
?*?????typedef?signed?char?jbyte;
?*/
UNSAFE_ENTRY(jboolean,?Unsafe_CompareAndSwapInt(JNIEnv?*env,?jobject?unsafe,?jobject?obj,?jlong?offset,?jint?e,?jint?x))
??UnsafeWrapper("Unsafe_CompareAndSwapInt");
??oop?p?=?JNIHandles::resolve(obj);
??//?根據(jù)偏移量,計算?value?的地址。這里的?offset?就是?AtomaicInteger?中的?valueOffset
??jint*?addr?=?(jint?*)?index_oop_from_field_offset_long(p,?offset);
??//?調(diào)用?Atomic?中的函數(shù)?cmpxchg,該函數(shù)聲明于?Atomic.hpp?中
??return?(jint)(Atomic::cmpxchg(x,?addr,?e))?==?e;
UNSAFE_END

//?atomic.cpp
unsigned?Atomic::cmpxchg(unsigned?int?exchange_value,
?????????????????????????volatile?unsigned?int*?dest,?unsigned?int?compare_value)?{
??assert(sizeof(unsigned?int)?==?sizeof(jint),?"more?work?to?do");
??/*
???*?根據(jù)操作系統(tǒng)類型調(diào)用不同平臺下的重載函數(shù),這個在預(yù)編譯期間編譯器會決定調(diào)用哪個平臺下的重載
???*?函數(shù)。相關(guān)的預(yù)編譯邏輯如下:
???*?
???*?atomic.inline.hpp:
???*????#include?"runtime/atomic.hpp"
???*????
???*????//?Linux
???*????#ifdef?TARGET_OS_ARCH_linux_x86
???*????#?include?"atomic_linux_x86.inline.hpp"
???*????#endif
???*???
???*????//?省略部分代碼
???*????
???*????//?Windows
???*????#ifdef?TARGET_OS_ARCH_windows_x86
???*????#?include?"atomic_windows_x86.inline.hpp"
???*????#endif
???*????
???*????//?BSD
???*????#ifdef?TARGET_OS_ARCH_bsd_x86
???*????#?include?"atomic_bsd_x86.inline.hpp"
???*????#endif
???*?
???*?接下來分析?atomic_windows_x86.inline.hpp?中的?cmpxchg?函數(shù)實現(xiàn)
???*/
??return?(unsigned?int)Atomic::cmpxchg((jint)exchange_value,?(volatile?jint*)dest,
???????????????????????????????????????(jint)compare_value);
}

CAS ?? ????? ??? ?????. CAS ??? ???? ??? ???? ?????. ?? ??? ?? ??? ?? ??? ???

?? ?? ???? ?? cmpxchg ??????.

lock cmpxchg dword ptr [edx], ecx

4.ABA ??

CAS? ????? ????? CAS? ABA ??? ????? ???. CAS? "??->??->??"? ? ??? ?????. ??? 1? ??? 2? ??? CAS ??? ???? ??? ??? ????. ? ???? ?? ??? ??? ????.

?? 1: ??? 1? ?? ??? ???? ?? ? A? ?? ?? ???? ???????.
  1. ?? 2: ??? 2? CAS ??? ???? ?? ?? A?? B
  2. ? ?????. ?? 3: ??? 2? CAS ??? ?? ???? ?? ?? B?? A
  3. ?? 4? ?????. Thread 1? ??? ???? ?(compareValue)? ?? ?(oldValue)? ???? ? ?? ??? ??? ?????. ?? ?? ? ?(newValue)? ???? ?? CAS ??? ?????.
  4. ? ???? ??? ??? 1? ?? ?? ??? ?? ??? ??? ???? ??? ???? ???? ????? ?????. ABA ??? ?? ???? ?? ??? ? CAS ??? ?? ??? ???? ????. java.util.concurrent.atomic ???? ABA ??? ??? ? ?? ?? ??? AtomicStampedReference? ?????. ???? ?? ??? ???? ????. ?? ?? ??? ?? ??? ? ????.

5. ??

? ?? ?? ??? ?? ?????. CAS? ?? ??? ??? ??? ??? ??? ??? ????? ?? ????. ???? ??? ?? ??? ??? ???? ????. ??? ?? ??? ??? ????? ?????. ?? ?? ?? ???? ?? ?? ?? ? ??? ????? ?? ? ????. ??? ??? ??? ???? ??? ?????. ?? ? ???? ???? ?? ?? ????.

?????. ?? ??? ???????. ????? ?????. ??? ???.

Appendix

?? ???? ?? ???? ??? ?? ?? ?, ??? ??? ???? ????. ??? ?? ?? ??? ??? ???? ? ??? ???.

?? ??Unsafe.javaunsafe.cppatomic.cppatomic_windows_x86 .inline.hpp
Path
openjdk/jdk/src/share/classes/sun/misc/Unsafe.java
openjdk/hotspot/src/share/vm/prims/unsafe.cpp
openjdk/hotspot/src/share/vm/runtime/atomic.cpp
openjdk/hotspot/src/os_cpu/windows_x86/vm/atomic_windows_x86.inline.hpp

? ??? Java CAS ?? ?? ??? ?? ?????. ??? ??? PHP ??? ????? ?? ?? ??? ?????!

? ????? ??
? ?? ??? ????? ???? ??? ??????, ???? ?????? ????. ? ???? ?? ???? ?? ??? ?? ????. ???? ??? ???? ???? ??? ?? admin@php.cn?? ?????.

? AI ??

Undresser.AI Undress

Undresser.AI Undress

???? ?? ??? ??? ?? AI ?? ?

AI Clothes Remover

AI Clothes Remover

???? ?? ???? ??? AI ?????.

Video Face Swap

Video Face Swap

??? ??? AI ?? ?? ??? ???? ?? ???? ??? ?? ????!

???

??? ??

???++7.3.1

???++7.3.1

???? ?? ?? ?? ???

SublimeText3 ??? ??

SublimeText3 ??? ??

??? ??, ???? ?? ????.

???? 13.0.1 ???

???? 13.0.1 ???

??? PHP ?? ?? ??

???? CS6

???? CS6

??? ? ?? ??

SublimeText3 Mac ??

SublimeText3 Mac ??

? ??? ?? ?? ?????(SublimeText3)

???

??? ??

??? ????
1601
29
PHP ????
1502
276
???
JDBC? Java? ??? ???? ??? ?????? JDBC? Java? ??? ???? ??? ?????? Aug 02, 2025 pm 12:29 PM

JDBC ????? ???? ????? ?? ?? ?? ??? ?? ?? ??? ?? ? ?? ??? ?? ?? ?? ??? ???????. 1. ????? ????? Conn.SetAutoCommit (False)?? ??????. 2. ??? ? ????? ?? ?? SQL ??? ?????. 3. ?? ??? ??? ?? Conn.commit ()?? ???? ??? ???? ???? ?? ??? ???? Conn.Rollback ()?? ??????. ???, ? ??? ???? ????, ??? ???? ????, ?? ??? ??? ?? ??? ??? ???? ? ???????. ?? ?? ?? ???? ????? ??? ???? ?? ?? ???? ???? ??? ????? ?? ??? ??? ? ?? ???? ?? ????.

Java? ??? ?? ??? ?????? Java? ??? ?? ??? ?????? Aug 02, 2025 am 02:38 AM

?? ?? ? ?? ???? ???? ?? Java.Time ???? ???? ??????. 2. LocalDate, LocalDateTime ? LocalTime? ?? ?? ??? ??? ?????. 3. () ???? ???? ?? ??? ??? ????. 4. ???/???? ??? ???? ??? ????? ??? ??????. 5. ZonedDateTime ? Zoneid? ???? ???? ??????. 6. DateTimeFormatter? ?? ?? ? ?? ?? ?? ???; 7. ??? ?? ?? ?? ??? ????? ?? ??????. ?? Java? ?? ??? ???? ??? ??? ???? Java.Timeapi ??? ?? ??? ???????.

Java ??? ?? ?? : Spring Boot vs Quarkus vs Micronaut Java ??? ?? ?? : Spring Boot vs Quarkus vs Micronaut Aug 04, 2025 pm 12:48 PM

Pre-FormancetArtUptimeMoryUsage, Quarkusandmicronautleadduetocompile-timeprocessingandgraalvsupport, withquarkusoftenperforminglightbetterine serverless sinarios.2.thyvelopecosyste,

???? ?? ? ??? ?? ???? ?? ? ??? ?? Aug 01, 2025 am 06:40 AM

NetworkPortSandfirewallsworkTogetToenableCommunication whileensuringsecurity.1.networkportSarevirtualendpointsnumbered0–65535, Withwell-nownports like80 (http), 443 (https), 22 (ssh) ? 25 (smtp) ?? (specservices

??? ??? Java?? ??? ?????? ??? ??? Java?? ??? ?????? Aug 02, 2025 pm 01:55 PM

Java 's Garbage Collection (GC)? ???? ???? ???? ??????, ?? ? ??? ??? ? ??? ??? ??? ??? ????. 1.GC? ?? ?? (? : ?? ??, ?? ???, ?? ?? ?)?? ??? ???? ????, ?? ? ??? ??? ???? ?????. 2. ?? ???? ????? ????, ?? ?? ??? ??? ???? ?? ??? ??????. 3. ?? ?? ?? ?? : ??? ?? (Eden, S0, S1)? ?? ????? ?????. ??? ??? ?? ? MajorGC? ???? ? ??? ? ????. Metaspace? ??? ?? ???? ?????. 4. JVM? ??? GC ??? ?????. SerialGC? ??? ?? ????? ?????. ParallelGC? ???? ??????. CMS? ?? ???

Java ?? ?? ?? : Maven vs. Gradle Java ?? ?? ?? : Maven vs. Gradle Aug 03, 2025 pm 01:36 PM

GradleisBetTerChoiceFormostNewProjectSduetoitssuperiorflexible, Performance, and ModernToolingsupport.1.Gradle'Sgroovy/kotlindslismoreConcisENDEXPRESSIVETHANMAVEN'SVOSEXML.2.GradleOutsMaveninbuildweedweedweedweedweedweedweedweedweedweedweedweedweedweede

??? ????. ?? ??? ?? ??? ????. ?? ??? ?? Aug 02, 2025 am 06:26 AM

DEFER? ??? ???? ?? ??? ??? ???? ? ?????. ?? ??? ?? ? ? ?? ????, ??? ??? ? ?? ?? (LIFO)? ??? ?????. 1. ?? ??? ??? ? ??? ?????. 2. ?? ??? ?? ??? ??? ????? ?????. 3. ?? ? ?? ?? ??? ? ????. 4. ??? ?????? ??? ??? ???? ?????. 5. ?? ??? ???? ?? ??? ?? ??? ?????. ??? ??? ?? ?? ? ???? ???? ? ????.

??? ???? html` ?? '??? ????? ??? ???? html` ?? '??? ????? Aug 03, 2025 am 11:07 AM

??? htmlinput ??? ???? ??? ???? ????? ??? ??? ?? ??? ???? ???? ? ????. 1. ???, ???, ??, ?? ? ??? ?? ??? ??? ?? ?? ?? ??? ???? ???? ??? ? ???? ??? ? ????. 2. HTML5? ?????? ??? ? ?? ?? ??? ?? ? ??? URL, ??, ?? ? ??? ?? ??? ??? ??????. 3. ?? ?? ? ? ??? ??? ???? ?? ??? ???? ???? ?? ???? ?? ???? ???? ?? ? ? ??? ?? ???????.

See all articles