Web Development Code
Photo
السلام عليكم ...
-------------
المرة اللي فاتت كنا بدأنا موضوع جديد واتكلمنا فيه شوية عن مفهوم ال multi threading وشوفنا مع بعض ازاي الموضوع ده فادنا جدا في ال performance وشوفنا مع بعض مثال بالأرقام المرة اللي فاتت ف لو حضرتك ما قرأتش الموضوع اللي فات ممكن تقراه الأول قبل ما نكمل
وقفنا المرة اللي فاتت عند التطبيق لل multi threading وقد ايه هوا حد جميل وطيب وخلاص هنعتمده في أي برنامج هنكتبه بس بعدها رجعنا في كلامنا وقولنا بس للأسف هو مش طيب للدرجادي وفيه حاجات هنعرفها عنه زيادة النهاردة هتخلينا نفكر تاني هل هنستخدمه في أي كود هنكتبه عشان نبقى شطار وال performance بتاع البرنامج بتاعنا يبقى أحسن من ابن خالته ال single threaded ؟؟!
أول حاجه هنصدمكم بيها أنه مش بالسهولة دي نقدر نكتب برنامج نستخدم فيه مفهوم ال multi threading
- ليه؟
بسبب حاجات كتير أولهم إن انت هتحتاج تعرف كل حاجه شغاله ازاي علي سبيل المثال احنا المرة اللي فاتت بس عشان نقول حاجه بسيطه جدا جدا عن ايه هوا ال multi threading لاقينا نفسنا دخلنا في مفاهيم كتير معتمده عليه وقولنا باختصار كدا ان ال cpu في الغالب بيتعامل مع ال threads دي وينفذها ودخلنا في مواضيع كتير جدا وحتى بعد ما عرفنا المواضيع دي لسه ما اقدرش اقولك اننا نقدر بسهولة دلوقتي نستخدم ال multi threading في اي برنامج هنكتبه ﻷن لسه فيه معلومات أكتر وأكتر وتفاصيل كتير ما اتكلمناش عنها وبتختلف من طبيعة ال operating system للتاني فكتابة برنامج نستخدم فيه ال multi threading عشان نحقق أحسن استفادة منه هنحتاج ننزل لتحت وتحت أوي كمان لحد مانوصل لل cpu كـ hardware نفسه شغال ازاي وهنلاقي الموضوع بيختلف من جهاز للتاني يعني لو كتبت كود على جهازي وفهمت جهازي شغال ازاي ممكن اجي اعمل host مثلا على جهاز تاني الاقي النتيجة مش نفس اللي انا اقصده
- ايه ده ياعم انت سديت نفسنا
ولسه كمان هسدها اكتر اصبر عليا
- ؟؟!
لا بهزر معاك كدا خلاص خلصنا سد النفس
- طيب ايه اصلا المشاكل اللي هتخليني أعمل الموضوع ده كله واضطر اروح اشوف كل cpu وكل os شغال ازاي والحوار ده كله؟؟
أكبر مشكلة هو اني مش ببقى متأكد من اللي هيحصل
يعني ايه؟
هديك مثال لو انا شغال بال multi threaded وعندي مثلا رصيد بنك وكل عملية عندي بعملها ب thread يعني على سبيل المثال لو هعمل عملية خصم مبلغ معين هعمل عمليتين أول واحده بروح اعمل check على الرصيد هل يسمح انه يعمل خصم بالمبلغ ده ولا لا ولو ينفع فيه variable بيحوله من false لtrue ولو ما ينفعش هيفضل false والعملية التانيه هيا عملية التحويل نفسها انه يخصم الرصيد لو كان ال variable ده true وده dummy code مكتوب ب c# عشان نشوف الفكرة بس ومش لازم دلوقتي نفهم ال implementation بس كل اللي هنعمله اني هكرر عملية شغل ال threads دي 5 مرات وهبدأ اشوف النتيجة كل مرة
لو بدأنا ننفذ العمليتين دول مش هقدر أأكدلك إن في كل مره هتتم عملية خصم المبلغ ده أو لا
-ليه
عشان كل الكلام اللي قولناه فوق ده وفيه نسبة احتمالات في الموضوع فهلاقي هندي مره مثلا الthread الأول اللي بيعمل check خلص شغل الأول فلما الthread التاني يبدأ شغله يلاقي الvariable بtrue ويخصم عادي وده السيناريو اللي انا عاوزه يحصل بس للأسف ممكن برضة الthread التاني يخلص الأول فييجي يخصم يلاقس الvariable بfalse وما يخصمش وبعدها ال thread الأول يشتغل ويخلي الvariable بtrue بس بعد ايه بقى ما خلاص اللي انا بغير الvariable عشانه خلص وروح بيته ف مش بقدر اقوله لا خلصلي الthread بتاع الcheck الأول عشان لما الthread التاني اللي بيخصم ييجي يشتغل يلاقي الvariable بtrue فيبدأ ينفذ شغله عادي
وده كان مثال بسيط عن مشكلة كبيرة من المشاكل اللي بتواجهنا لما نيجي نستخدم الmulti threading وبكده نكون خلصنا كلامنا النهارده وان شاء الله نكمل كلامنا عن المشاكل المرة الجايه عشان ما نطولش عليكم
-------------
المرة اللي فاتت كنا بدأنا موضوع جديد واتكلمنا فيه شوية عن مفهوم ال multi threading وشوفنا مع بعض ازاي الموضوع ده فادنا جدا في ال performance وشوفنا مع بعض مثال بالأرقام المرة اللي فاتت ف لو حضرتك ما قرأتش الموضوع اللي فات ممكن تقراه الأول قبل ما نكمل
وقفنا المرة اللي فاتت عند التطبيق لل multi threading وقد ايه هوا حد جميل وطيب وخلاص هنعتمده في أي برنامج هنكتبه بس بعدها رجعنا في كلامنا وقولنا بس للأسف هو مش طيب للدرجادي وفيه حاجات هنعرفها عنه زيادة النهاردة هتخلينا نفكر تاني هل هنستخدمه في أي كود هنكتبه عشان نبقى شطار وال performance بتاع البرنامج بتاعنا يبقى أحسن من ابن خالته ال single threaded ؟؟!
أول حاجه هنصدمكم بيها أنه مش بالسهولة دي نقدر نكتب برنامج نستخدم فيه مفهوم ال multi threading
- ليه؟
بسبب حاجات كتير أولهم إن انت هتحتاج تعرف كل حاجه شغاله ازاي علي سبيل المثال احنا المرة اللي فاتت بس عشان نقول حاجه بسيطه جدا جدا عن ايه هوا ال multi threading لاقينا نفسنا دخلنا في مفاهيم كتير معتمده عليه وقولنا باختصار كدا ان ال cpu في الغالب بيتعامل مع ال threads دي وينفذها ودخلنا في مواضيع كتير جدا وحتى بعد ما عرفنا المواضيع دي لسه ما اقدرش اقولك اننا نقدر بسهولة دلوقتي نستخدم ال multi threading في اي برنامج هنكتبه ﻷن لسه فيه معلومات أكتر وأكتر وتفاصيل كتير ما اتكلمناش عنها وبتختلف من طبيعة ال operating system للتاني فكتابة برنامج نستخدم فيه ال multi threading عشان نحقق أحسن استفادة منه هنحتاج ننزل لتحت وتحت أوي كمان لحد مانوصل لل cpu كـ hardware نفسه شغال ازاي وهنلاقي الموضوع بيختلف من جهاز للتاني يعني لو كتبت كود على جهازي وفهمت جهازي شغال ازاي ممكن اجي اعمل host مثلا على جهاز تاني الاقي النتيجة مش نفس اللي انا اقصده
- ايه ده ياعم انت سديت نفسنا
ولسه كمان هسدها اكتر اصبر عليا
- ؟؟!
لا بهزر معاك كدا خلاص خلصنا سد النفس
- طيب ايه اصلا المشاكل اللي هتخليني أعمل الموضوع ده كله واضطر اروح اشوف كل cpu وكل os شغال ازاي والحوار ده كله؟؟
أكبر مشكلة هو اني مش ببقى متأكد من اللي هيحصل
يعني ايه؟
هديك مثال لو انا شغال بال multi threaded وعندي مثلا رصيد بنك وكل عملية عندي بعملها ب thread يعني على سبيل المثال لو هعمل عملية خصم مبلغ معين هعمل عمليتين أول واحده بروح اعمل check على الرصيد هل يسمح انه يعمل خصم بالمبلغ ده ولا لا ولو ينفع فيه variable بيحوله من false لtrue ولو ما ينفعش هيفضل false والعملية التانيه هيا عملية التحويل نفسها انه يخصم الرصيد لو كان ال variable ده true وده dummy code مكتوب ب c# عشان نشوف الفكرة بس ومش لازم دلوقتي نفهم ال implementation بس كل اللي هنعمله اني هكرر عملية شغل ال threads دي 5 مرات وهبدأ اشوف النتيجة كل مرة
لو بدأنا ننفذ العمليتين دول مش هقدر أأكدلك إن في كل مره هتتم عملية خصم المبلغ ده أو لا
-ليه
عشان كل الكلام اللي قولناه فوق ده وفيه نسبة احتمالات في الموضوع فهلاقي هندي مره مثلا الthread الأول اللي بيعمل check خلص شغل الأول فلما الthread التاني يبدأ شغله يلاقي الvariable بtrue ويخصم عادي وده السيناريو اللي انا عاوزه يحصل بس للأسف ممكن برضة الthread التاني يخلص الأول فييجي يخصم يلاقس الvariable بfalse وما يخصمش وبعدها ال thread الأول يشتغل ويخلي الvariable بtrue بس بعد ايه بقى ما خلاص اللي انا بغير الvariable عشانه خلص وروح بيته ف مش بقدر اقوله لا خلصلي الthread بتاع الcheck الأول عشان لما الthread التاني اللي بيخصم ييجي يشتغل يلاقي الvariable بtrue فيبدأ ينفذ شغله عادي
وده كان مثال بسيط عن مشكلة كبيرة من المشاكل اللي بتواجهنا لما نيجي نستخدم الmulti threading وبكده نكون خلصنا كلامنا النهارده وان شاء الله نكمل كلامنا عن المشاكل المرة الجايه عشان ما نطولش عليكم
Forwarded from 404 / 500 / 2
قناة مفيدة للاشخاص الذين يرغبون في تطوير مهاراتهم في عمل مشاريع باستخدام html css javascript و مكتبة React.js
القناة جديدة و يتم حاليا تنزيل الدروس بشكل تدريجي حاليا اعمل على مشروع موقع كامل عندما انتهي سوف اقوم بنشرة ايضا في القناة
رابط القناة اذا كنت مهتم
https://youtube.com/channel/UCe7UAkBGye8_IBFIymHFHAQ
القناة جديدة و يتم حاليا تنزيل الدروس بشكل تدريجي حاليا اعمل على مشروع موقع كامل عندما انتهي سوف اقوم بنشرة ايضا في القناة
رابط القناة اذا كنت مهتم
https://youtube.com/channel/UCe7UAkBGye8_IBFIymHFHAQ
Forwarded from DoT. (Salem 64bit)
You are able to build a network server using an old Intel 80386 system with 4 MB of RAM.
https://t.me/OxSOF_0x80
دي قناه عبد الرحمن هو واحد صحبي لو حد عوز يدعمه قناته برمجه وسيكيورتي
وبالتوفيق للجميع 🙏❤️
دي قناه عبد الرحمن هو واحد صحبي لو حد عوز يدعمه قناته برمجه وسيكيورتي
وبالتوفيق للجميع 🙏❤️
السلام عليكم جميعا :
في هذا الفيديو سوف تعلم معه بعض كيفية إنشاء header باستخدام html & css فقط
Hello everyone: In this video, you will learn how to create a header using only html & css
https://youtu.be/lEdCo6oHj1A
في هذا الفيديو سوف تعلم معه بعض كيفية إنشاء header باستخدام html & css فقط
Hello everyone: In this video, you will learn how to create a header using only html & css
https://youtu.be/lEdCo6oHj1A
السلام عليكم....
المرة اللي فاتت كملنا كلامنا عن الmulti threading و كنا بدأنا نشوف ليه استخدام ال multi threading مش سهل وهيبدأ يدخلني في مشاكل كتير ولو حابب ابعد عن المشاكل دي هدخل نفسي في تعقيدات كتير جدا انا في غنى عنها وكنا بدأنا نشوف المره اللي فاتت حاجه مثال على مشكلة من المشاكل اللي ممكن تواجهني لما استخدم الmulti threading و النهارده باذن الله هنتكلم عن مشكلة تانيه ممكن تواجهني مع استخدام الmulti threading
المرة اللي فاتت كملنا كلامنا عن الmulti threading و كنا بدأنا نشوف ليه استخدام ال multi threading مش سهل وهيبدأ يدخلني في مشاكل كتير ولو حابب ابعد عن المشاكل دي هدخل نفسي في تعقيدات كتير جدا انا في غنى عنها وكنا بدأنا نشوف المره اللي فاتت حاجه مثال على مشكلة من المشاكل اللي ممكن تواجهني لما استخدم الmulti threading و النهارده باذن الله هنتكلم عن مشكلة تانيه ممكن تواجهني مع استخدام الmulti threading
Web Development Code
Photo
وكلامنا النهاردة عن مشكلة الrace condition
- ايه هيا الrace condition دي؟
الrace condition ببساطه هيا لما يكون عندي 2threads او اكتر بيحاولوا يوصولوا لداتا معينه تكون shared مابينهم وكل واحد فيهم محتاج يغير في الداتا دي
- ايه الكلام ده مش فاهم حاجه؟
بص خلينا نقول قصة كدا بسيطة تحاول تبسطلنا الموضوع على قد ما نقدر
القصه دي بتاعت الحاجه ام محمود وأولادها أم محمود عندها ولدين أول واحد اسمه خالد والتاني اسمه عمر
(أم محمود ده اسم مركب زي ام كلثوم كده)
عمر كان عاوز يشتري لعبة ب 60 جنيه من على امازون وهيدفع عن الاستلام بس طبعا الفلوس مش معاه الفلوس مع الحاجه ام محمود ف راح سألها يا حاجه انتي معاكي فلوس كام قالتله معايا 100 جنيه قالها تمام كويس وسابها ومشى بعدها بشوية ام محمود لقت خالد داخل عليها بيسألها يا حاجه انتي معاكي كام فلوس قالتله 100 جنيه قالها تمام كويس وسابها ومشى خالد طبع كان بيسألها عشان هوا كمان عاوز يشتري لعبة من على امازون ب70 جنيه وهيدفع هو كمان عند الاستلام ولما سابها ومشى كان راح يطلب اللعبة دي وفي نفس الوقت عمر هو كمان كان بيطلب اللعبه لأنهم هما الاتنين سألوا امهم معاكي فلوس قد ايه وقالتلهم معايا 100 وكل واحد قال كدا تمام يبقى هقدر اشتري لعبتي طبعا حضراتكم عارفين تكملة القصه لما المندوب وصل ام محمود عملت ايه لخالد وعمر.......
- ايه هيا الrace condition دي؟
الrace condition ببساطه هيا لما يكون عندي 2threads او اكتر بيحاولوا يوصولوا لداتا معينه تكون shared مابينهم وكل واحد فيهم محتاج يغير في الداتا دي
- ايه الكلام ده مش فاهم حاجه؟
بص خلينا نقول قصة كدا بسيطة تحاول تبسطلنا الموضوع على قد ما نقدر
القصه دي بتاعت الحاجه ام محمود وأولادها أم محمود عندها ولدين أول واحد اسمه خالد والتاني اسمه عمر
(أم محمود ده اسم مركب زي ام كلثوم كده)
عمر كان عاوز يشتري لعبة ب 60 جنيه من على امازون وهيدفع عن الاستلام بس طبعا الفلوس مش معاه الفلوس مع الحاجه ام محمود ف راح سألها يا حاجه انتي معاكي فلوس كام قالتله معايا 100 جنيه قالها تمام كويس وسابها ومشى بعدها بشوية ام محمود لقت خالد داخل عليها بيسألها يا حاجه انتي معاكي كام فلوس قالتله 100 جنيه قالها تمام كويس وسابها ومشى خالد طبع كان بيسألها عشان هوا كمان عاوز يشتري لعبة من على امازون ب70 جنيه وهيدفع هو كمان عند الاستلام ولما سابها ومشى كان راح يطلب اللعبة دي وفي نفس الوقت عمر هو كمان كان بيطلب اللعبه لأنهم هما الاتنين سألوا امهم معاكي فلوس قد ايه وقالتلهم معايا 100 وكل واحد قال كدا تمام يبقى هقدر اشتري لعبتي طبعا حضراتكم عارفين تكملة القصه لما المندوب وصل ام محمود عملت ايه لخالد وعمر.......
كفايه كدا حكاوي عشان متنامش مننا ونرجع تاني لأصل الموضوع اللي بنتكلم عنه وهوا الrace condition واللي هنقول تعريفه اللي قولناه فوق مره تاني
الrace condition ببساطه هيا لما يكون عندي 2threads (خالد و عمر) او اكتر بيحاولوا يوصولوا لداتا معينه تكون shared (أم محمود) مابينهم وكل واحد فيهم محتاج يغير في الداتا دي (يشتري اللعبه بتاعته ويصرف الفلوس بتاعت أم محمود)
وعلشان نشوف المشكلة دي عملي هنحاول نكتب الكود بتاع أم محمود ونشوفه ونشوف المشاكل اللي هتصحلي في الكود.....
الrace condition ببساطه هيا لما يكون عندي 2threads (خالد و عمر) او اكتر بيحاولوا يوصولوا لداتا معينه تكون shared (أم محمود) مابينهم وكل واحد فيهم محتاج يغير في الداتا دي (يشتري اللعبه بتاعته ويصرف الفلوس بتاعت أم محمود)
وعلشان نشوف المشكلة دي عملي هنحاول نكتب الكود بتاع أم محمود ونشوفه ونشوف المشاكل اللي هتصحلي في الكود.....
وده كود بيستخدم 2threads أول thread واللي بيمثلنا عمر بيبدأ يشتغل وبيعمل check على فلوس الحاجه ام محمود اكتر من 60 ولا لا والcheck بينجح فبيدخل ينفذ اللي جوا واللي هوا عباره انه يروح ينفذ عملية الطلب والعملية دي بتاخد وقت فمثلناها هنا انه بيقعد ثانيه يعمل الحاجه دي في نفس الوقت ده الthread التاني واللي بيمثلنا خالد بيروح يتنفذ وأول حاجه بيروح يعمل check هل فلوس الحاجه 70 او اكتر وبينجح الcheck ده لأن عمر لسه ما خصمش من الفلوس وبيدخل جوا ينفذ نفس العملية بتاعت عمر وتتفاجئ أم محمود انها بقى عليها دين ب 30 جنيه وتضطر تكلم امبر هيرد عشان تعرف اجراءات اعلان الافلاس .....
Web Development Code
سؤال JS : ليه الكود اتنفذ كده .. قول السبب فالتعليقات. #js
هو انا مش شايف تفاعل لي ؟
انا غلطان يعني ان بنشر حاجه.
اقفل القناه احسن؟؟
انا غلطان يعني ان بنشر حاجه.
اقفل القناه احسن؟؟
اتمني كل شاب يسمعو بجد ..
بين الحياة الجامعية .. والمستقبل ( رحلة .. اصنع فيها نجاحك )
الخلاصة 👇🏻
لو انت عندك النهارده مشكله .. انت ممكن تغير العالم كلو
ببساطه شوف امكانياتك اي .. وحل المشكله دي 👌🏻
https://m.facebook.com/story.php?story_fbid=pfbid029BRVnMRyxi9JrZi9NBnQJs31gcfHm1fjRWp8ofnpxddqbToeGurtsStH2dEMfZVGl&id=100028088954650 👏🏻
بين الحياة الجامعية .. والمستقبل ( رحلة .. اصنع فيها نجاحك )
الخلاصة 👇🏻
لو انت عندك النهارده مشكله .. انت ممكن تغير العالم كلو
ببساطه شوف امكانياتك اي .. وحل المشكله دي 👌🏻
https://m.facebook.com/story.php?story_fbid=pfbid029BRVnMRyxi9JrZi9NBnQJs31gcfHm1fjRWp8ofnpxddqbToeGurtsStH2dEMfZVGl&id=100028088954650 👏🏻
Facebook
Log in or sign up to view
See posts, photos and more on Facebook.
Web Development Code
Photo
السلام عليكم ...
المرة اللي فاتت اتكلمنا مع بعض شوية عن مفهوم الrace condition وبتحصل امتى وادينا مثال عليها و أثبتنا مع بعض انه ازاي الmulti threading مش دايما بيبقى أطيب من الأستاذ بهاء سلطان ولا حاجه
ووقفنا المرة اللي فاتت عند مشكلة الحاجه أم محمود وشوفنا مع بعض مشكلة من مشاكل الmulti threading بسبب ان فيه 2threads مشتركين مع بعض resource واحده وكل واحد فيهم بيقرا نفس القيمة وبعدها يروح يعمل check على القيمة اللي قرأها دي وفي الحالتين القيمة الأولى بتحقق condition بتاعت كل thread فبيبدأ كل واحد فيهم يدخل في الكود الخاص فيه ويسببلي مشكلة كبيرة بعد كدا
- طيب ايه الحل دلوقتي ؟
الحل هوا الlock
-ايه الlock ده هنقفل على ام محمود؟
اه حاجه زي كدا بالظبط
في المثال البسيط بتاع المرة اللي فاتت ان الأول عمر راح سأل والدته وبعدها سابها ومشى بعد كدا لما اخوه جه سألها برضو جاوبته عادي جدا لأن مفيش اي حاجه تمنعها من كدا ف الجماعه بتوع الsoftware قالك طيب ما لو الحاجه ام محمود كانت رفضت تقول لخالد هيا معاها فلوس كام لأن عمر سألها ومحتاج يعمل عملية بالفلوس دي
ايه هيا العملية وقد ايه لسه مش عارفه بس طالما سألني يبقى هو محتاج يعمل حاجه بالفلوس دي فلما عمر جالها قالتله استنى دلوقتي اصبر عشان أخوك سألني من شوية ومشى فأكيد هو هيعمل حاجه وهيخصم من الفلوس دي اصبر لحد ما نشوف هو هيعمل ايه وهياخد كام وبعدها هقولك انا باقي معايا كام وبس كدا بكل بساطة أم محمود حلت مشكلة الrace condition بسهولة خالص بمفهوم الlock لأن المشكلة أساسا في الأول كانت بتحصل عندي لما 2threads يبقى ليهم access في نفس الوقت لshared resource فاللي أنا هعمله دلوقتي اني بمجرد ما thread يوصل للداتا دي هيعمل بلوك لأي thread تاني من انه يوصلها إلا لما يخلص من خلال الlock وبعدها يفك الlock اللي عمله عليها ده وييجي الthread اللي بعده يعمل عليها lock برضو بحيث انه يمنع اي thread تاني أنه يوصلها لحد ما يخلص شغله ويفك الlock ده فاللي هيحصل عندنا انه أول thread هيوصل للداتا هيعملها lock بمعنى انا مش ملزم كل مرة thread 1 اللي شغلناه الأول يوصل الأول مش شرط دي حاجه زي ما قولنا معتمدة على الos وعوامل تانية ملناش دعوه بيها دلوقتي بس اللي حصل دلوقتي اني حليت المشكلة الكبيرة وبدل ما أم محمود تلاقي نفسها مديونه بعد ما الاتنين threads (خالد وعمر) يستخدموا فلوسها هيا قدرت تنظم الموضوع بطريقة بسيطة جدا
وزي كل مرة عملنا كود بسيط يوضحلنا الconcept ده ازاي بيتحقق عندنا في الreal life وده نفس الكود بتاع المرة اللي فاتت بس الفرق اننا استخدمنا الlock المرادي وده عملنا ظلم شوية بين الأخين بسبب ان عمر وصل الأول وقدر يقلب الحاجه في الفلوس وعلى ما خالد وصل كانت الحاجه اتقلبت وما قدرتش توفرله الcondition بتاعه فمقدرش يتنفذ وحافظلي على الlogic بتاع الsystem من انه يبوظ أو ان أم محمود تعلن افلاسها
المرة اللي فاتت اتكلمنا مع بعض شوية عن مفهوم الrace condition وبتحصل امتى وادينا مثال عليها و أثبتنا مع بعض انه ازاي الmulti threading مش دايما بيبقى أطيب من الأستاذ بهاء سلطان ولا حاجه
ووقفنا المرة اللي فاتت عند مشكلة الحاجه أم محمود وشوفنا مع بعض مشكلة من مشاكل الmulti threading بسبب ان فيه 2threads مشتركين مع بعض resource واحده وكل واحد فيهم بيقرا نفس القيمة وبعدها يروح يعمل check على القيمة اللي قرأها دي وفي الحالتين القيمة الأولى بتحقق condition بتاعت كل thread فبيبدأ كل واحد فيهم يدخل في الكود الخاص فيه ويسببلي مشكلة كبيرة بعد كدا
- طيب ايه الحل دلوقتي ؟
الحل هوا الlock
-ايه الlock ده هنقفل على ام محمود؟
اه حاجه زي كدا بالظبط
في المثال البسيط بتاع المرة اللي فاتت ان الأول عمر راح سأل والدته وبعدها سابها ومشى بعد كدا لما اخوه جه سألها برضو جاوبته عادي جدا لأن مفيش اي حاجه تمنعها من كدا ف الجماعه بتوع الsoftware قالك طيب ما لو الحاجه ام محمود كانت رفضت تقول لخالد هيا معاها فلوس كام لأن عمر سألها ومحتاج يعمل عملية بالفلوس دي
ايه هيا العملية وقد ايه لسه مش عارفه بس طالما سألني يبقى هو محتاج يعمل حاجه بالفلوس دي فلما عمر جالها قالتله استنى دلوقتي اصبر عشان أخوك سألني من شوية ومشى فأكيد هو هيعمل حاجه وهيخصم من الفلوس دي اصبر لحد ما نشوف هو هيعمل ايه وهياخد كام وبعدها هقولك انا باقي معايا كام وبس كدا بكل بساطة أم محمود حلت مشكلة الrace condition بسهولة خالص بمفهوم الlock لأن المشكلة أساسا في الأول كانت بتحصل عندي لما 2threads يبقى ليهم access في نفس الوقت لshared resource فاللي أنا هعمله دلوقتي اني بمجرد ما thread يوصل للداتا دي هيعمل بلوك لأي thread تاني من انه يوصلها إلا لما يخلص من خلال الlock وبعدها يفك الlock اللي عمله عليها ده وييجي الthread اللي بعده يعمل عليها lock برضو بحيث انه يمنع اي thread تاني أنه يوصلها لحد ما يخلص شغله ويفك الlock ده فاللي هيحصل عندنا انه أول thread هيوصل للداتا هيعملها lock بمعنى انا مش ملزم كل مرة thread 1 اللي شغلناه الأول يوصل الأول مش شرط دي حاجه زي ما قولنا معتمدة على الos وعوامل تانية ملناش دعوه بيها دلوقتي بس اللي حصل دلوقتي اني حليت المشكلة الكبيرة وبدل ما أم محمود تلاقي نفسها مديونه بعد ما الاتنين threads (خالد وعمر) يستخدموا فلوسها هيا قدرت تنظم الموضوع بطريقة بسيطة جدا
وزي كل مرة عملنا كود بسيط يوضحلنا الconcept ده ازاي بيتحقق عندنا في الreal life وده نفس الكود بتاع المرة اللي فاتت بس الفرق اننا استخدمنا الlock المرادي وده عملنا ظلم شوية بين الأخين بسبب ان عمر وصل الأول وقدر يقلب الحاجه في الفلوس وعلى ما خالد وصل كانت الحاجه اتقلبت وما قدرتش توفرله الcondition بتاعه فمقدرش يتنفذ وحافظلي على الlogic بتاع الsystem من انه يبوظ أو ان أم محمود تعلن افلاسها