0 امتیاز
قبل در برنامه نویسی توسط (7 امتیاز)
ویرایش شده قبل توسط

من چند تا شی مثل (()MyClass myclass = new MyClass )  و چند تا متغیر مثل ( long, int و ...) دارم. حال سوالاتی در این مورد دارم.

1. اگر چندین ترد همزمان مشغول خواندن شی یا متغیر یکسان بودند، آیا مشکلی ایجاد می شود؟

2. اگر چندین Thread در یک لحظه در حال عوض کردن مقدار یک متغیر یا شی بودند، آیا مشکلی ایجاد می شود؟

3. اگر من در یکجا در حال خواندن یک شی یا متغیر بودم و در جای دیگر در حال عوض کردن مقدار آن متغیر یا شی بودم، آیا مشکلی ایجاد می شود؟

آیا به چیز خاصی بستگی دارد؟ اگر مشکلی ایجاد می شود من باید چیکار کنم؟ این که همش از Atomic ها استفاده کنم، سرعت رو خیلی میاره پایین. ممنون میشم اگر دوستان راهنمایی کنند. اگر نیاز به کد بود بگید تا کد مشابه رو بنویسم بذارم.

1 پاسخ

0 امتیاز
قبل توسط (50 امتیاز)
ویرایش شده قبل توسط

فقط خواندن همزمان یک شی مشکلی ایجاد نخواهد کرد.
اما تغییر همزمان بر روی یک شی مشکل ایجاد خواهد کرد.
در کل تغییر در یک‌ شی به همراه هر ترد دیگر به احتمال بسیار بالا باعث اشکال در زمان اجرا و نتیجه نهایی خواهد شد.
توصیه میکنم برای این کار از بخش ۱۷ آموزش های سایت جاوا کاپ که بسیار عالی هستند استفاده کنید.

سوالات مشابه

0 امتیاز
0 پاسخ 320 بازدید
+1 امتیاز
2 پاسخ 867 بازدید
+1 امتیاز
1 پاسخ 197 بازدید
سوال شده 2 سال قبل در برنامه نویسی توسط masoud shahhosseini_ (45 امتیاز)
+1 امتیاز
1 پاسخ 596 بازدید
+2 امتیاز
2 پاسخ 2.8هزار بازدید
...