Forwarded from ویکی تجربه - استخدام و بررسی شرکت ها
میدونستی اگه بخوای تو یه کشور اروپایی دنبال کار بگردی، اون شرکتی که براش اپلای میکنی باید ویزای کاریِ تو رو اسپانسر کنه تا بتونی به راحتی و بدون دردسر به اون کشور مهاجرت کنی؟
حالا حساب کن اگه اون شرکت، ریلوکیشن پکیج هم داشته باشه که دیگه چی از این بهتر 😇
یعنی چی؟
یعنی هزینه ی بلیط هواپیما، اجاره خونه برای یک یا دوماه اول و بقیه ی هزینه های حمایتیِ دیگه برای شروع زندگی تو یه کشور جدید رو پرداخت کنه، یه کمک و پشتوانه ی خیلی قوی برات محسوب بشه و دغدغه ها و نگرانیهای تو رو برای استارت زندگی جدیدت تا حد زیادی برطرف کنه.
از طرفی هممون میدونیم لینکدین یکی از قویترین سایتها در زمینهی کاریابیِ بین المللی هست؛ ولی خیلی از موقعیتهای شغلی معرفی شده توسط لینکدین، #نیروی_لوکال میخواد و در نتیجه دلیل خیلی از ریجکتی هایی که پیش میاد اینه که تو اون کشور نیستی.
بچه ها وبسایت #ریلوکیشن_جابز همه ی این نیازها رو مرتفع میکنه.
این وبسایت فوق العاده کاربردی هست و با موتور جستجوی قدرتمندی که داره، شبانه روزی در حال بررسی این موقعیتها هست و به محض پیدا شدن یه موقعیتی که ویزا اسپانسر میکنه و ریلوکیشن پکیج میده، اون رو برات لیست میکنه که بتونی بهش دسترسی پیدا کنی.
همچنین موقعیت های ریموت جهان که امکان کار با ایرانی ها رو داره هم تو این وب سایت براتون لیست میشه
✅ در حال حاضر موقعیت رشتههای نرم افزار و برنامه نویسی در شاخه های فرانت اند ، بکند ، دواپس، دیتا ساینس، مارکتینگ ، سئو ، طراحی محصول ، مدیریت محصول، مهندسی برق ، مهندسی سخت افزار ، مهندسی مکانیک ، مهندسی صنایع، حسابداری و امور مالی و ده ها رشته ی دیگه که ریلوکیشن پکیج میدن رو داره که هر روز داره تو این سایت لیست میشه.
https://relocationjobs.org
حالا حساب کن اگه اون شرکت، ریلوکیشن پکیج هم داشته باشه که دیگه چی از این بهتر 😇
یعنی چی؟
یعنی هزینه ی بلیط هواپیما، اجاره خونه برای یک یا دوماه اول و بقیه ی هزینه های حمایتیِ دیگه برای شروع زندگی تو یه کشور جدید رو پرداخت کنه، یه کمک و پشتوانه ی خیلی قوی برات محسوب بشه و دغدغه ها و نگرانیهای تو رو برای استارت زندگی جدیدت تا حد زیادی برطرف کنه.
از طرفی هممون میدونیم لینکدین یکی از قویترین سایتها در زمینهی کاریابیِ بین المللی هست؛ ولی خیلی از موقعیتهای شغلی معرفی شده توسط لینکدین، #نیروی_لوکال میخواد و در نتیجه دلیل خیلی از ریجکتی هایی که پیش میاد اینه که تو اون کشور نیستی.
بچه ها وبسایت #ریلوکیشن_جابز همه ی این نیازها رو مرتفع میکنه.
این وبسایت فوق العاده کاربردی هست و با موتور جستجوی قدرتمندی که داره، شبانه روزی در حال بررسی این موقعیتها هست و به محض پیدا شدن یه موقعیتی که ویزا اسپانسر میکنه و ریلوکیشن پکیج میده، اون رو برات لیست میکنه که بتونی بهش دسترسی پیدا کنی.
همچنین موقعیت های ریموت جهان که امکان کار با ایرانی ها رو داره هم تو این وب سایت براتون لیست میشه
✅ در حال حاضر موقعیت رشتههای نرم افزار و برنامه نویسی در شاخه های فرانت اند ، بکند ، دواپس، دیتا ساینس، مارکتینگ ، سئو ، طراحی محصول ، مدیریت محصول، مهندسی برق ، مهندسی سخت افزار ، مهندسی مکانیک ، مهندسی صنایع، حسابداری و امور مالی و ده ها رشته ی دیگه که ریلوکیشن پکیج میدن رو داره که هر روز داره تو این سایت لیست میشه.
https://relocationjobs.org
Forwarded from HuntLearn
ویدئو ورکشاپ سرویسهانتینگ؛ به تدریس مهندس رضا شریف زاده در یوتیوب آپلود شد! منتظر حمایت شما عزیزان هستیم🙏🏼
https://www.youtube.com/watch?v=BegoBUg5NiU
https://www.youtube.com/watch?v=BegoBUg5NiU
YouTube
ورکشاپ سرویس هانتینگ! به تدریس مهندس رضا شریف زاده
Enjoy the videos and music you love, upload original content, and share it all with friends, family, and the world on YouTube.
❤1
Forwarded from #root@hack (𝙍𝙄𝘾𝙃Δ𝙍𝘿)
📦Курсы по реверс инжинирингу от ILLEGAL7
содержание курса:
Advanced software cracking
Cracker Tools 2.8
Dotnet Software Reverse Engineering And Static Analysis Course
Ransomware virus course
Reverse Engineering Course
Software Cracking Course
🔗 ссылка на скачивание
пароль: Theillegalhacker7@@@
содержание курса:
Advanced software cracking
Cracker Tools 2.8
Dotnet Software Reverse Engineering And Static Analysis Course
Ransomware virus course
Reverse Engineering Course
Software Cracking Course
пароль: Theillegalhacker7@@@
Please open Telegram to view this post
VIEW IN TELEGRAM
https://github.com/XDeadHackerX/NetSoc_OSINT/blob/main/README-English.md
Social media osint tool
#OSINT
#Tool
Social media osint tool
#OSINT
#Tool
GitHub
NetSoc_OSINT/README-English.md at main · XDeadHackerX/NetSoc_OSINT
Tool focused on extracting information from an account in different Social Networks / Herramienta enfocada a extraer información de una cuenta en diversas Redes Sociales, SIN usar nuestra Cuenta, N...
دوستان متاسفانه دیگه فعالیت نخواهیم داشت😔
این کانال هم داشته باشید به عنوان آخرین پست کانال(حداقل از طرف بنده)
https://www.youtube.com/@iotwithiman/
پلی لیست کامل آموزش STM32 و سیستم های کنترل دیجیتال
این کانال هم داشته باشید به عنوان آخرین پست کانال(حداقل از طرف بنده)
https://www.youtube.com/@iotwithiman/
پلی لیست کامل آموزش STM32 و سیستم های کنترل دیجیتال
YouTube
IoT with Iman
I am Iman. I have investigated the Internet of Things systems for years and have become a full-stack developer: Designing the hardware, develop the device, connect it to a server, and providing its data to an end-user. I am here to share everything I've learned…
💔4
برای آموزش QML هم Downloadly یه سری دوره از Udemy آپلود کرده با عناوین
Qt6 and Qml for begginers
Qt6 and Qml for Intermediate
Qt6 and Qml for Advanced
بنظرم خوب هستن
#cpp
#qt
#programming
Qt6 and Qml for begginers
Qt6 and Qml for Intermediate
Qt6 and Qml for Advanced
بنظرم خوب هستن
#cpp
#qt
#programming
❤2
همزمانی در سیپلاسپلاس
پست یک
خب سیپلاسپلاس و stl یه مجموعه کاملی برای concurrency دارن.
مهم ترینش شاید بشه گفت کلاس std::thread باشه که ریسورسای لازم یک ثرد رو از سیستم عامل میگیره. فرض کنین بخوایم یه تابع رو به شکل همزمان اجرا کنیم شکل کلی برنامه اینجوری میشه:
نکته های خیلی زیادی داره این چندخط که سعی میکنم چندتاشو بگم
۱) یه آبجکت ثرد به محض ساخته شدن، شروع به اجرا میکنه و با stl تاجایی که بنده میدونم نمیتونیم ثردی که از اول ساسپند شده بسازیم
۲) بعد از اینکه به آبجکت از std::thread میسازیم، یا باید joinاش رو صدا کنیم تا ثرد اصلی تا موقع تموم شدن کارش صبر کنه یا detach رو صدا کنیم تا ثرد بره توی پس زمینه اجراشه (کنترل ثرد بیوفته دست کتابخانه رانتایم cpp).
حالا سوال اینه اگه جوین یا دیتچ رو صدا نکنیم چه اتفاقی میوفته؟
اتفاقای بد
خیلی بد😂
۳) توی دیستراکتور thread، اگه یه ثرد جوین یا دیتچ نشده باشه، تابع std::terminate صدا زده میشه که کلا برنامه رو میبنده پس حتما باید قبل از ازبین رفتن آبجکت یکی از ایندوتا تابع رو صدا بزنیم. (یکی از جاهایی که مهمه حواسمون به این نکته باشه، وقتیه که بین ساختن آبجکت و جوین یا دیتچ کردنش یه کد داشته باشیم که exception تولید کنه اینجورجاها بهتره از std::jthread استفاده کنیم. توضیحش خارج از این پسته)
۴) یه ثرد وقتی join یا detachاش صدا زده میشه، تابع std::thread::joinable اش دیگه تا ابد false برمیگردونه. دلیلش سادست. اگه join رو صدا زده باشیم و بعدش joinable رو، قاعدتا تا ثرد تموم نشه، به joinable نمیرسیم و وقتی برسیم ثرد تموم شده و دیگه وجود نداره که بخوایم جوینش کنیم. اگه دیتچ کرده باشیم هم یه ثرد داریم که دیگه دست ما نیست کنترلش و کلا هیچ کنترلی روش نخواهیم داشت. پس باز هم منطقیه که joinable فالس برگردونه.
درواقع دیستراکتور std::thread هم از همین تابع استفاده میکنه تا چک کنه ببینه باید terminate کنه یا نه
۵) اگه تابعی که قراره به صورت همزمان اجرا بشه یه سری متغیر ورودی داشته باشه، توی std::thread این متغیرا رو پاس میدیم ولی باید حواسمون باشه که متغیرها کپی خواهند شد. حتی اگه رفرنس باشن🥸
این یه سری نکته داره که ایشالا بعدا میگم
ادامه
#programming
#cpp
#concurrency
پست یک
خب سیپلاسپلاس و stl یه مجموعه کاملی برای concurrency دارن.
مهم ترینش شاید بشه گفت کلاس std::thread باشه که ریسورسای لازم یک ثرد رو از سیستم عامل میگیره. فرض کنین بخوایم یه تابع رو به شکل همزمان اجرا کنیم شکل کلی برنامه اینجوری میشه:
#include <thread>
void someConcurrentFunction(){}
int main(){
auto th=std::thread(someFunction);
th.join(); //or th.detach()
}
نکته های خیلی زیادی داره این چندخط که سعی میکنم چندتاشو بگم
۱) یه آبجکت ثرد به محض ساخته شدن، شروع به اجرا میکنه و با stl تاجایی که بنده میدونم نمیتونیم ثردی که از اول ساسپند شده بسازیم
۲) بعد از اینکه به آبجکت از std::thread میسازیم، یا باید joinاش رو صدا کنیم تا ثرد اصلی تا موقع تموم شدن کارش صبر کنه یا detach رو صدا کنیم تا ثرد بره توی پس زمینه اجراشه (کنترل ثرد بیوفته دست کتابخانه رانتایم cpp).
حالا سوال اینه اگه جوین یا دیتچ رو صدا نکنیم چه اتفاقی میوفته؟
اتفاقای بد
خیلی بد😂
۳) توی دیستراکتور thread، اگه یه ثرد جوین یا دیتچ نشده باشه، تابع std::terminate صدا زده میشه که کلا برنامه رو میبنده پس حتما باید قبل از ازبین رفتن آبجکت یکی از ایندوتا تابع رو صدا بزنیم. (یکی از جاهایی که مهمه حواسمون به این نکته باشه، وقتیه که بین ساختن آبجکت و جوین یا دیتچ کردنش یه کد داشته باشیم که exception تولید کنه اینجورجاها بهتره از std::jthread استفاده کنیم. توضیحش خارج از این پسته)
۴) یه ثرد وقتی join یا detachاش صدا زده میشه، تابع std::thread::joinable اش دیگه تا ابد false برمیگردونه. دلیلش سادست. اگه join رو صدا زده باشیم و بعدش joinable رو، قاعدتا تا ثرد تموم نشه، به joinable نمیرسیم و وقتی برسیم ثرد تموم شده و دیگه وجود نداره که بخوایم جوینش کنیم. اگه دیتچ کرده باشیم هم یه ثرد داریم که دیگه دست ما نیست کنترلش و کلا هیچ کنترلی روش نخواهیم داشت. پس باز هم منطقیه که joinable فالس برگردونه.
درواقع دیستراکتور std::thread هم از همین تابع استفاده میکنه تا چک کنه ببینه باید terminate کنه یا نه
۵) اگه تابعی که قراره به صورت همزمان اجرا بشه یه سری متغیر ورودی داشته باشه، توی std::thread این متغیرا رو پاس میدیم ولی باید حواسمون باشه که متغیرها کپی خواهند شد. حتی اگه رفرنس باشن🥸
این یه سری نکته داره که ایشالا بعدا میگم
ادامه
#programming
#cpp
#concurrency
Stuff for Geeks
همزمانی در سیپلاسپلاس پست یک خب سیپلاسپلاس و stl یه مجموعه کاملی برای concurrency دارن. مهم ترینش شاید بشه گفت کلاس std::thread باشه که ریسورسای لازم یک ثرد رو از سیستم عامل میگیره. فرض کنین بخوایم یه تابع رو به شکل همزمان اجرا کنیم شکل کلی برنامه اینجوری…
همزمانی در سیپلاسپلاس
پست ۲
تو این پست میخوام در مورد مشکلی که آخر پست یک بهش اشاره شد، بگم. مشکلی که ما با پاس دادن متغیر به std::thread که یه کانستراکتور هست، داریم. فرض کنید که یه تابع مثل زیر داریم و میخوایم اون رو به std::thread پاس بدیم:
خب حالا فرض کنید یه ثرد با این تابع بسازیم:
این کد مشکل ساز خواهد بود
هرچند که اینجا کار میکنه، ولی در ادامه میبینیم که این کد مشکلات بزرگی داره
دلیلش اینه که متنی که داخل دابل کوت قرار داره، یه آبجکت استرینگ نیست و درحقیقت یه
درواقع someFunction یه استرینگ میگیره ولی متد std::thread یه سری ورودی میگیره که جنسشون ربطی به اینکه جنس پارامترهای someFunction چیه نداره. پس اینجا به مشکل میخوریم. مشکل وقتی جدی میشه که پارامتری که داریم به std::thread پاس میدیم، یه پوینتر اتوماتیک باشه که از اسکوپ خارج شده باشه ولی ثرد بهش نیاز داشته باشه. اینجاست که کدمون خطری میشه.
راه حل چیه؟
راه حل اینه که واضحا به کامپایلر بگیم که میخوایم استرینگ پاس بدیم. کد زیر، کد درسته:
همین قضیه برای رفرنس برقراره. البته ایندفعه کامپایلر ارور میده. مثلا کد زیر، خطای کامپایل خواهد داشت:
اینجا هم باید به کامپایلر واضح بگیم که باید رفرنس پاس بده. برای اینکار باید از std::ref استفاده کنیم که یه wrapper برای reference هست:
و کد کامپایل خواهد شد.
ادامه
#programming
#cpp
#concurrency
پست ۲
تو این پست میخوام در مورد مشکلی که آخر پست یک بهش اشاره شد، بگم. مشکلی که ما با پاس دادن متغیر به std::thread که یه کانستراکتور هست، داریم. فرض کنید که یه تابع مثل زیر داریم و میخوایم اون رو به std::thread پاس بدیم:
void someFunction(std::string someString){
//some processing
}خب حالا فرض کنید یه ثرد با این تابع بسازیم:
int main(){
std::thread th(someFunction, "some string");
th.join();
return 0;
}این کد مشکل ساز خواهد بود
هرچند که اینجا کار میکنه، ولی در ادامه میبینیم که این کد مشکلات بزرگی داره
دلیلش اینه که متنی که داخل دابل کوت قرار داره، یه آبجکت استرینگ نیست و درحقیقت یه
cons char* عه.درواقع someFunction یه استرینگ میگیره ولی متد std::thread یه سری ورودی میگیره که جنسشون ربطی به اینکه جنس پارامترهای someFunction چیه نداره. پس اینجا به مشکل میخوریم. مشکل وقتی جدی میشه که پارامتری که داریم به std::thread پاس میدیم، یه پوینتر اتوماتیک باشه که از اسکوپ خارج شده باشه ولی ثرد بهش نیاز داشته باشه. اینجاست که کدمون خطری میشه.
راه حل چیه؟
راه حل اینه که واضحا به کامپایلر بگیم که میخوایم استرینگ پاس بدیم. کد زیر، کد درسته:
int main(){
std::thread th(someFunction, std::string("some string"));
th.join();
return 0;
}همین قضیه برای رفرنس برقراره. البته ایندفعه کامپایلر ارور میده. مثلا کد زیر، خطای کامپایل خواهد داشت:
void foo(int& someRef){
//...
}
int main(){
int i=10;
std::thread th(foo, i);
th.join();
return 0;
}اینجا هم باید به کامپایلر واضح بگیم که باید رفرنس پاس بده. برای اینکار باید از std::ref استفاده کنیم که یه wrapper برای reference هست:
void foo(int& someRef){
//...
}
int main(){
int i=10;
std::thread th(foo, std::ref(i));
th.join();
return 0;
}و کد کامپایل خواهد شد.
ادامه
#programming
#cpp
#concurrency
Simplified designing of analog and digital filters, op-amps and amplifiers and more:
https://youtube.com/@adanner
https://youtube.com/@adanner
A great channel
C/C++ Programming
OpenGL and SDL2/3
SFML
Design Patterns
and much more
https://www.youtube.com/@MikeShah
C/C++ Programming
OpenGL and SDL2/3
SFML
Design Patterns
and much more
https://www.youtube.com/@MikeShah
Stuff for Geeks
همزمانی در سیپلاسپلاس پست ۲ تو این پست میخوام در مورد مشکلی که آخر پست یک بهش اشاره شد، بگم. مشکلی که ما با پاس دادن متغیر به std::thread که یه کانستراکتور هست، داریم. فرض کنید که یه تابع مثل زیر داریم و میخوایم اون رو به std::thread پاس بدیم: void som…
همزمانی در سیپلاسپلاس
پست ۳
تو این پست میخوام درمورد std::jthread که از C++17 به stl اضافه شده یه صبحتی بکنیم.
این کلاس یه خاصیت خوب داره:
توی دیستراکتورش، چک میکنه اگه ثرد جوین نشده بود جوینش میکنه.
چرا این خاصیت خوبه؟
چون ما معمولا یه ثرد که میسازیم، چندین خط بعد جوین یا دیتچش میکنم و به همین دلیل ممکنه بین ساختنش تا جوین شدنش اکسپشن رخ بده یا اتفاقای دیگه که باعث شده ثرد جوین نشه. و همونطور که قبلا گفتیم، اگه یه ثرد عادی (std::thread) جوین نشه و دیستراکتورش صدا زده بشه، برنامه کامل بسته میشه(std::terminate).
پس خوبه که بجای std::thread که توی C++11 اضافه شد، از std::jthread استفاده کنیم.
ادامه
#cpp
#programming
#comcurrency
پست ۳
تو این پست میخوام درمورد std::jthread که از C++17 به stl اضافه شده یه صبحتی بکنیم.
این کلاس یه خاصیت خوب داره:
توی دیستراکتورش، چک میکنه اگه ثرد جوین نشده بود جوینش میکنه.
چرا این خاصیت خوبه؟
چون ما معمولا یه ثرد که میسازیم، چندین خط بعد جوین یا دیتچش میکنم و به همین دلیل ممکنه بین ساختنش تا جوین شدنش اکسپشن رخ بده یا اتفاقای دیگه که باعث شده ثرد جوین نشه. و همونطور که قبلا گفتیم، اگه یه ثرد عادی (std::thread) جوین نشه و دیستراکتورش صدا زده بشه، برنامه کامل بسته میشه(std::terminate).
پس خوبه که بجای std::thread که توی C++11 اضافه شد، از std::jthread استفاده کنیم.
ادامه
#cpp
#programming
#comcurrency
Stuff for Geeks
همزمانی در سیپلاسپلاس پست ۳ تو این پست میخوام درمورد std::jthread که از C++17 به stl اضافه شده یه صبحتی بکنیم. این کلاس یه خاصیت خوب داره: توی دیستراکتورش، چک میکنه اگه ثرد جوین نشده بود جوینش میکنه. چرا این خاصیت خوبه؟ چون ما معمولا یه ثرد که میسازیم،…
همزمانی در سیپلاسپلاس
پست ۴
خب
حالا که چندین ثرد داریم، اگه خواسته باشیم یه حافظهای بین اینا به اشتراک بذاریم(shared_momry) باید چیکار کنیم؟
تعداد زیادی از مشکلات و مباحث همزمانی از اینجا شروع میشه.
مشکل اول، race condition:
یه مثال معروفی هست برای اینکه بفهمیم این مشکل چیه. فرض کنید رفتین سینما یا تئاتر و دهتا از مسئولین سالن دارن برای هر صندلی بلیت میفروشن. (صندلیها میشن shared memory و ماموران فروش میشن ثردها)
حالا اینجا مشکل اولی که پیش میاد اینه که اگه ماموران فروش خوب هماهنگ نشده باشن، ممکنه یه صندلی رو به دو یا چندتانفر بفروشن که قاعدتا کار اشتباهیه
اینجا هم همین مشکل هست
فرض کنید دوتا ثرد بخوان به عددی که تو یه خونه از حافظه هست رو بخونن(read) و مقدارش رو یک واحد اضافه کنن(write).
این مورد هم توجه داشته باشید که دیتا متاسفانه کش میشه. ینی از مموری اصلی(رم) خونده میشه و تا یه مدت کوتاهی توی سی پی یو هست.
حالا فرض کنید مقداری که توی حافظه هست عدد ده باشه.
ثرد یک این مقدار رو میخونه(۱۰) و این مقدار خونده شده میاد تو کش.
میاد یکی بهش اضافه کنه ولی تا بخواد اضافه کنه، ثرد دو چون همزمان داره اجرا میشه، ممکنه بیاد و بخواد عملیات خوندن رو انجام بده و چون توی کش مقدار ده رو داریم، عدد ده رو خواهد خوند. بعد هر ثرد یکی اضافه میکنن به این مقدار که میشه یازده و توی مموری مینویسنش.
انتظارمون این بود به عدد دوازده توی مموری برسیم(چون دوتا ثرد هرکدوم داشتن به یه متغیر یه واحد اضافه میکردن) ولی ممکنه به عدد یازده هم برسیم.
برای رفع این مشکل ساختارهای متفاوتی در سطح نرمافزاری و سخت افزاری داریم. در سطح نرمافزاری یا دقیق تر سیستم عاملی، mutex و semaphore و در سطح سختافزاری atomic operation ها رو داریم که در ادامه بررسی خواهند شد
ادامه
#programming
#cpp
#comcurrency
پست ۴
خب
حالا که چندین ثرد داریم، اگه خواسته باشیم یه حافظهای بین اینا به اشتراک بذاریم(shared_momry) باید چیکار کنیم؟
تعداد زیادی از مشکلات و مباحث همزمانی از اینجا شروع میشه.
مشکل اول، race condition:
یه مثال معروفی هست برای اینکه بفهمیم این مشکل چیه. فرض کنید رفتین سینما یا تئاتر و دهتا از مسئولین سالن دارن برای هر صندلی بلیت میفروشن. (صندلیها میشن shared memory و ماموران فروش میشن ثردها)
حالا اینجا مشکل اولی که پیش میاد اینه که اگه ماموران فروش خوب هماهنگ نشده باشن، ممکنه یه صندلی رو به دو یا چندتانفر بفروشن که قاعدتا کار اشتباهیه
اینجا هم همین مشکل هست
فرض کنید دوتا ثرد بخوان به عددی که تو یه خونه از حافظه هست رو بخونن(read) و مقدارش رو یک واحد اضافه کنن(write).
این مورد هم توجه داشته باشید که دیتا متاسفانه کش میشه. ینی از مموری اصلی(رم) خونده میشه و تا یه مدت کوتاهی توی سی پی یو هست.
حالا فرض کنید مقداری که توی حافظه هست عدد ده باشه.
ثرد یک این مقدار رو میخونه(۱۰) و این مقدار خونده شده میاد تو کش.
میاد یکی بهش اضافه کنه ولی تا بخواد اضافه کنه، ثرد دو چون همزمان داره اجرا میشه، ممکنه بیاد و بخواد عملیات خوندن رو انجام بده و چون توی کش مقدار ده رو داریم، عدد ده رو خواهد خوند. بعد هر ثرد یکی اضافه میکنن به این مقدار که میشه یازده و توی مموری مینویسنش.
انتظارمون این بود به عدد دوازده توی مموری برسیم(چون دوتا ثرد هرکدوم داشتن به یه متغیر یه واحد اضافه میکردن) ولی ممکنه به عدد یازده هم برسیم.
برای رفع این مشکل ساختارهای متفاوتی در سطح نرمافزاری و سخت افزاری داریم. در سطح نرمافزاری یا دقیق تر سیستم عاملی، mutex و semaphore و در سطح سختافزاری atomic operation ها رو داریم که در ادامه بررسی خواهند شد
ادامه
#programming
#cpp
#comcurrency
Another youtube channel:
Cryptocurrency(16h) Networking(28h)
ML(52h)
DL(21h)
Advanced PowerShell(12h)
And more
https://youtube.com/@nerdslesson
#programming
#network
#course
Cryptocurrency(16h) Networking(28h)
ML(52h)
DL(21h)
Advanced PowerShell(12h)
And more
https://youtube.com/@nerdslesson
#programming
#network
#course