مفهوم AtomicLong در جاوا چیست و چه تفاوتی با Long دارد؟

+1 رأی
میانگین بازدید روزانه 0.35100 بازدید
مفهوم AtomicLong چیست و چه تفاوتی با Long دارد؟
سوال 9 ماه قبل در تالار برنامه نویسی توسط masoud65 (15 امتیاز)
ویرایش 9 ماه قبل توسط Saeed Zarinfam

2 جواب

+1 رأی

مفهوم Boxing و Unboxing برای Long معنی دارد ولی برای AtomicLong خیر. کاربرد اصلی AtomicLong برای برنامه نویسی multi thread است و در محیط هایی که همزمان چند thread می خواهند به مقدار متغییر دسترسی داشته باشند کاربرد دارد و سرعت پایینتری نسبت به Long دارد.

برای دستکاری مقدار درون AtomicLong، عملگر های atomic در اختیار ما قرار داده شده است که وقتی در محیط multi thread آنها را فراخوانی می کنیم خیالمان راحت است که از زمان شروع و خاتمه آن عملگر، هیچ thread دیگری نمی تواند مقدار را تغییر دهد.

AtomicLong از جاوا 5 به JDK اضافه شده است و لاک گذاشتن برای عملگر های atomic را با استفاده از امکانات توکار CPU انجام می دهد (compare and swap) که از سرعت بالایی برخوردار است.

جواب 9 ماه قبل توسط Saeed Zarinfam (1,293 امتیاز)
+1 رأی

فرض کنید شما

Ling i=1L;

را دارید و بعد از اون

i++

را اضافه می کنید .

i=i+1

در این کار شما i را یک بار جمع کردید و یک بار در متغیر i قرار داده اید.

وقتی از Atomic استفاده می کنید این امکان را می دهد تا کل اون دستور به صورت یک جا اجرا بشود و وسط کار اون نخ دیگری متغیر را تغییر ندهد.

در واقع اتمیک کل کار را یک جا انجام می دهد و محیط امنی را برای نخ ها می سازد.

جواب 9 ماه قبل توسط behzamaan (10 امتیاز)
ویرایش 9 ماه قبل توسط Saeed Zarinfam

سوال های مشابه

+1 رأی
1 جواب میانگین بازدید روزانه 0.177 بازدید
+2 رأی
1 جواب میانگین بازدید روزانه 0.08138 بازدید
0 رأی
1 جواب میانگین بازدید روزانه 0.0665 بازدید
+1 رأی
2 جواب میانگین بازدید روزانه 0.44824 بازدید
+1 رأی
2 جواب میانگین بازدید روزانه 3.162 بازدید
+1 رأی
2 جواب میانگین بازدید روزانه 3.04167 بازدید
0 رأی
0 جواب میانگین بازدید روزانه 1.0363 بازدید
سوال 1 ماه قبل در تالار برنامه نویسی توسط hmdshariati (0 امتیاز)
+1 رأی
1 جواب میانگین بازدید روزانه 167 بازدید
سوال 2 ماه قبل در تالار برنامه نویسی توسط Sina1993 (19 امتیاز)
0 رأی
0 جواب میانگین بازدید روزانه 0.655 بازدید
0 رأی
0 جواب میانگین بازدید روزانه 0.7670 بازدید
کانال تلگرام جواب یاب
...