Alexey Naydenov. ITooLabs. گو (گولانگ) ٽيليفون پليٽ فارم تي ترقي جو ڪيس. حصو 1

Alexey Naydenov، سي اي او ITooLabs، گو (گولانگ) پروگرامنگ ٻولي ۾ ٽيليڪ آپريٽرز لاءِ ٽيليڪميونيڪيشن پليٽ فارم جي ترقي بابت ڳالهائي ٿو. Alexey پڻ ايشيائي ٽيلي ڪام آپريٽرن مان هڪ وڏي ۾ پليٽ فارم کي ترتيب ڏيڻ ۽ هلائڻ ۾ پنهنجو تجربو شيئر ڪري ٿو، جنهن پليٽ فارم کي استعمال ڪيو وائس ميل سروسز (وائس ميل) ۽ ورچوئل PBX (Cloud PBX) مهيا ڪرڻ لاءِ.

Alexey Naydenov. ITooLabs. گو (گولانگ) ٽيليفون پليٽ فارم تي ترقي جو ڪيس. حصو 1

Alexey Naydenov (هتي - AN): - هيلو سڀ! منهنجو نالو Alexey Naydenov آهي. مان ITooLabs جو ڊائريڪٽر آهيان. سڀ کان پهريان، مان اهو جواب ڏيڻ چاهيان ٿو ته آئون هتي ڇا ڪري رهيو آهيان ۽ هتي ڪيئن ختم ٿي چڪو آهيان.

جيڪڏهن توهان ڏسو Bitrix24 Marketplace (سيڪشن ”ٽيليفوني“)، ته پوءِ 14 ايپليڪيشنون ۽ 36 جيڪي اتي آهن (40٪) اسان آهيون:

Alexey Naydenov. ITooLabs. گو (گولانگ) ٽيليفون پليٽ فارم تي ترقي جو ڪيس. حصو 1

وڌيڪ واضح طور تي، اهي اسان جا آپريٽر پارٽنر آهن، پر انهن سڀني جي پويان اسان جو پليٽ فارم آهي (پليٽ فارم هڪ خدمت) - جيڪو اسان انهن کي هڪ ننڍڙي پئسو لاء وڪرو ڪندا آهيون. دراصل، مان هن پليٽ فارم جي ترقي بابت ڳالهائڻ چاهيان ٿو ۽ اسان ڪيئن آياسين Go.

اسان جي پليٽ فارم لاء نمبر هاڻي:

Alexey Naydenov. ITooLabs. گو (گولانگ) ٽيليفون پليٽ فارم تي ترقي جو ڪيس. حصو 1

44 آپريٽر ڀائيوار، بشمول Megafon. عام طور تي ڳالهائڻ، اسان واقعي پسند ڪندا آهيون مختلف سفرن تي وڃڻ، ۽ اسان وٽ حقيقي رسائي آهي 100 ملين سبسڪرائبرز جي 44 آپريٽرز جي هتي روس ۾. تنهن ڪري، جيڪڏهن ڪنهن وٽ ڪو ڪاروباري خيال آهي، اسان هميشه انهن کي ٻڌي خوش ٿيندا.

  • 5000 استعمال ڪندڙ ڪمپنيون.
  • مجموعي طور تي 20 سبسڪرائبرز. هي سڀ b000b آهي - اسان صرف ڪمپنين سان ڪم ڪندا آهيون.
  • ڏينهن دوران 300 ڪالون في منٽ.
  • گذريل سال 100 ملين ڪالنگ منٽ (اسان جشن ڪيو). اهو اسان جي پليٽ فارم تي موجود اندروني ڳالهين جو حساب نٿو رکي.

اهو ڪيئن شروع ٿيو؟

ڪيئن صحيح دوست پنهنجو پليٽ فارم ٺاهڻ شروع ڪن ٿا؟ اسان کي اهو به ذهن ۾ رکڻ گهرجي ته اسان وٽ ”هارڊڪور انٽرپرائز“ جي ترقيءَ جي تاريخ آهي، ۽ ايستائين جو سال جي سڀ کان وڌيڪ صحيح وقت تي هڪ ڪمپني لاءِ! اھو اھو خوشگوار وقت ھو جڏھن توھان ڪسٽمر وٽ آيا ۽ چئو: ”اسان کي ڪجھ وڌيڪ سرور جي ضرورت آھي. ۽ گراهڪ: ”ڪوبه سوال نه! اسان وٽ ريڪ ۾ ڏهه آهن.

تنهنڪري اسان ڪيو Oracle، Java، WebSphere، Db2 ۽ اهو سڀ ڪجهه. تنهن ڪري، اسان ورتو، يقينا، بهترين وينڊر حل، انهن کي ضم ڪيو ۽ ان سان گڏ بند ڪرڻ جي ڪوشش ڪئي. پاڻ هلندا رهياسين. هي هڪ اهڙي اندروني شروعات ٿيندي.

اهو سڀ ڪجهه اصل ۾ 2009 ۾ شروع ٿيو. 2006 کان وٺي، اسان ويجھي طور تي آپريٽر حلن ۾ شامل ڪيو ويو آھي، ھڪڙو طريقو يا ٻيو. اسان ڪيترائي ڪسٽم ورچوئل PBX ٺاهيا آهن (جهڙوڪ جيڪو اسان وٽ هاڻي آرڊر تي آهي): اسان ان کي ڏٺو، فيصلو ڪيو ته اهو سٺو آهي، ۽ هڪ اندروني شروعاتي شروع ڪرڻ جو فيصلو ڪيو.

Alexey Naydenov. ITooLabs. گو (گولانگ) ٽيليفون پليٽ فارم تي ترقي جو ڪيس. حصو 1

اسان VMWare ورتو. جيئن ته اسان پاڻ تي هئاسين، اسان کي فوري طور تي ٿڌو وينڊر اسٽوريج ڇڏڻو پيو. اسان انهن جي باري ۾ سڀ ڪجهه ڄاڻون ٿا: اهي واعدو 3 سان ورهائڻ گهرجن، ۽ قيمت کي 10 سان ضرب ڪيو وڃي. اهو ئي سبب آهي ته انهن DirDB وغيره ٺاهي.

پوءِ اهو وڌڻ لڳو. هن ۾ هڪ بلنگ سروس شامل ڪئي وئي ڇاڪاڻ ته پليٽ فارم وڌيڪ مقابلو نه ڪري سگهيو. پوءِ بلنگ سرور MySQL کان منگو ڏانهن منتقل ٿيو. نتيجي طور، اسان هڪ ڪم ڪندڙ حل حاصل ڪيو آهي جيڪو سڀني ڪالن تي عمل ڪري ٿو جيڪي اتي ويندا آهن:

Alexey Naydenov. ITooLabs. گو (گولانگ) ٽيليفون پليٽ فارم تي ترقي جو ڪيس. حصو 1

پر اندر اندر، اهو ساڳيو وينڊر پراڊڪٽ گھمي رهيو آهي - مکيه، ايٽمي هڪ، جيڪو اسان هڪ ڀيرو ورتو هو. 2011 جي آخر ۾، اسان محسوس ڪيو ته اسان لاء بنيادي رڪاوٽ، يقينا، هي خاص پيداوار هوندي - اسان ان ۾ هلنداسين. اسان جي سامهون هڪ ڀت نظر آئي، جنهن ۾ اسين پوريءَ ريت ڊوڙندا رهياسين، جيئن وڌيڪ گراهڪ اچن پيا.
انهي جي مطابق، اسان کي ڪجهه ڪرڻو پوندو. يقينن، اسان مختلف پراڊڪٽس تي ڪافي تحقيق ڪئي آهي - ٻئي اوپن سورس ۽ وينڊر وارا. مان هن تي هاڻي نه رهندس - اهو نه آهي جنهن بابت اسان ڳالهائي رهيا آهيون. تمام آخري فال بيڪ آپشن جيڪو اسان سوچيو هو اسان جي پنهنجي پليٽ فارم ٺاهڻ لاءِ.

آخرڪار، اسان هن اختيار تي آياسين. ڇو؟ ڇو ته سڀئي وينڊرز ۽ اوپن سورس پراڊڪٽس ٺاهيا ويا مسئلا حل ڪرڻ لاءِ جيڪي 10 سال پراڻيون هيون. خير، جيڪڏهن 10 سالن جي عمر، ۽ ڪجهه وڌيڪ! چونڊ اسان لاءِ واضح ٿي چڪي آهي: يا ته اسان هڪ مثالي خدمت جي عظيم خيال کي الوداع چئون (پارٽنر، آپريٽرز ۽ پاڻ لاءِ)، يا اسان پنهنجو پاڻ ڪجهه ڪريون.

اسان فيصلو ڪيو ته اسان جي ڪجهه ڪرڻ جو!

پليٽ فارم جي گهرج

جيڪڏهن توهان هڪ ڊگهي وقت تائين ڪجهه ڪري رهيا آهيو (ڪنهن ٻئي جي پيداوار کي استعمال ڪندي)، پوء اهو خيال توهان جي ذهن ۾ آهستي آهستي بڻجي ٿو: مان اهو ڪيئن ڪندس؟ جيئن ته اسان ڪمپني ۾ سڀ پروگرامر آهيون (سواءِ وڪرو ڪندڙ، ڪو به غير پروگرامر نه آهن)، اسان جون گهرجون گهڻو وقت اڳ ترقي ڪيون ويون، ۽ اهي واضح هئا:

  1. اعلي ترقي جي رفتار. وينڊر جي پراڊڪٽ جيڪا اسان کي اذيت ڏني هئي، سڀ کان پهريان، اطمينان بخش نه هئي، ڇاڪاڻ ته هر شيء ڊگهي ۽ سست ٿي وئي. اسان ان کي جلدي چاهيو - اسان وٽ ڪيترائي خيال هئا! اسان وٽ اڃا به ڪافي خيال آهن، پر پوءِ خيالن جي فهرست اهڙي هئي، جو لڳي ٿو ته ڏهه سال اڳ. هاڻي صرف هڪ سال لاء.
  2. ملٽي ڪور لوھ جو وڌ ۾ وڌ استعمال. اهو اسان لاءِ پڻ اهم هو، ڇاڪاڻ ته اسان ڏٺو ته اتي رڳو وڌيڪ ۽ وڌيڪ ڪور هوندا.
  3. اعلي reliability. جنهن سان اسان به روئي ڏنو.
  4. ناڪامي لاء اعلي مزاحمت.
  5. اسان روزاني رليز جي عمل سان ختم ڪرڻ چاهيندا هئاسين. ان لاءِ اسان کي ٻوليءَ جي چونڊ جي ضرورت هئي.

Alexey Naydenov. ITooLabs. گو (گولانگ) ٽيليفون پليٽ فارم تي ترقي جو ڪيس. حصو 1

انهيءَ مطابق، پيداوار جي گهرج مان جيڪي اسان پاڻ لاءِ مقرر ڪيون آهن، ٻوليءَ جون گهرجون واضح طور تي منطقي انداز ۾ وڌن ٿيون.

  1. جيڪڏهن اسان ملٽي ڪور سسٽم لاءِ سپورٽ چاهيون ٿا، ته پوءِ اسان کي متوازي عمل جي حمايت جي ضرورت آهي.
  2. جيڪڏهن اسان کي ترقي جي رفتار جي ضرورت آهي، اسان کي هڪ ٻولي جي ضرورت آهي جيڪا مقابلي جي ترقي، مقابلي واري پروگرامنگ جي حمايت ڪري ٿي. جيڪڏهن ڪو به فرق نه آيو آهي، اهو بلڪل سادو آهي:
    • متوازي پروگرامنگ اهو آهي ته ڪيئن ٻه مختلف موضوعن تي عمل ڪيو وڃي ٿو مختلف ڪور تي؛
    • سمورو عمل، يا وڌيڪ صحيح طور تي، اتفاق جي حمايت، انهي بابت آهي ته ڪيئن هڪ ٻولي (يا رن ٽائيم، اهو فرق نٿو پوي) سڀني پيچيدگي کي لڪائڻ ۾ مدد ڪري ٿي جيڪا متوازي عمل مان ايندي آهي.
  3. اعلي استحڪام. ظاهر آهي، اسان کي هڪ ڪلستر جي ضرورت آهي، ۽ اسان وٽ وينڊر جي پيداوار تي هڪ کان بهتر آهي.

Alexey Naydenov. ITooLabs. گو (گولانگ) ٽيليفون پليٽ فارم تي ترقي جو ڪيس. حصو 1

اسان وٽ حقيقت ۾ ڪيترائي اختيار نه هئا، جيڪڏهن توهان کي ياد آهي. پهرين، Erlang - اسان کي پيار ۽ ڄاڻون ٿا، اهو منهنجو ذاتي، ذاتي پسنديده هو. ٻيو، جاوا به جاوا نه آهي، پر خاص طور تي اسڪالا. ٽيون، هڪ ٻولي جيڪا ان وقت اسان کي ڪا به خبر نه هئي - وڃو. اهو صرف تڏهن ظاهر ٿيو هو، يا بلڪه، اهو اڳ ۾ ئي ٻه سال اڳ ۾ موجود هو، پر اڃا تائين جاري نه ڪيو ويو هو.

وڃ فتح!

وڃڻ جي تاريخ

اسان ان تي هڪ پليٽ فارم ٺاهيو. مان وضاحت ڪرڻ جي ڪوشش ڪندس ڇو.

وڃڻ جي مختصر تاريخ. اهو 2007 ۾ شروع ٿيو، 2009 ۾ کوليو ويو، پهريون نسخو 2012 ۾ جاري ڪيو ويو (يعني، اسان پهرين رليز کان اڳ ئي ڪم ڪرڻ شروع ڪيو). شروعات ڪندڙ گوگل هو، جيڪو تبديل ڪرڻ چاهيندو هو، جيئن مون کي شڪ آهي، جاوا.

ليکڪ تمام مشهور آهن:

  • ڪين ٿامسن، جيڪو يونڪس جي پويان هو، UTF-8 ايجاد ڪيو، پلان 9 سسٽم تي ڪم ڪيو؛
  • Rob Pike، جيڪو UTF-8 ايجاد ڪيو، Ken سان گڏ، پڻ ڪم ڪيو پلان 9، Inferno، Limbo at Bell Labs؛
  • رابرٽ گيسمر، جنهن کي اسان ڄاڻون ٿا ۽ پيار ڪريون ٿا جاوا هٽ اسپاٽ ڪمپلر کي ايجاد ڪرڻ ۽ V8 ۾ جنريٽر تي ڪم ڪرڻ لاءِ (گوگل جو جاوا اسڪرپٽ مترجم)؛
  • ۽ 700 کان وڌيڪ مددگار، جن ۾ اسان جا ڪجھ پيچ شامل آھن.

Alexey Naydenov. ITooLabs. گو (گولانگ) ٽيليفون پليٽ فارم تي ترقي جو ڪيس. حصو 1

وڃ: پهرين نظر

اسان ڏسون ٿا ته ٻولي گهٽ ۾ گهٽ سادي ۽ سمجھڻ واري آهي. اسان وٽ واضح قسمون آهن: ڪجهه حالتن ۾ انهن کي اعلان ڪرڻ جي ضرورت آهي، ٻين ۾ اهي ضروري نه آهن (انهي جو مطلب اهو آهي ته قسمون هڪ طريقو يا ٻيو اندازو لڳايو ويو آهي).

Alexey Naydenov. ITooLabs. گو (گولانگ) ٽيليفون پليٽ فارم تي ترقي جو ڪيس. حصو 1

اهو ڏسي سگهجي ٿو ته اهو تعميرات کي بيان ڪرڻ لاء فيشن آهي. اهو ڏسي سگھجي ٿو ته اسان وٽ هڪ پوائنٽر جو تصور آهي (جتي ستاري آهي). اهو ڏسي سگھجي ٿو ته arrays ۽ associative arrays جي شروعات جو اعلان ڪرڻ لاءِ خاص سپورٽ آھي.

اهو تقريبا واضح آهي - توهان رهي سگهو ٿا. اچو ته لکڻ جي ڪوشش ڪريون هيلو، دنيا:

Alexey Naydenov. ITooLabs. گو (گولانگ) ٽيليفون پليٽ فارم تي ترقي جو ڪيس. حصو 1

اسان ڇا ٿا ڏسو؟ هي سي-جهڙو نحو آهي، سيميڪولن اختياري آهي. اهو ٻن لائينن لاءِ جدا ڪندڙ ٿي سگهي ٿو، پر صرف ان صورت ۾ جڏهن اهي ٻه اڏاوتون آهن جيڪي هڪ ئي لڪير تي آهن.

اسان ڏسون ٿا ته ڪنٽرول ڍانچي ۾ بریکٹس (14 هين لائين ۾) اختياري آهن، پر گھمڻ وارا ڪنگڻ هميشه گهربل آهن. اسان ڏسون ٿا ته ٽائپنگ جامد آهي. ٽائيم گهڻو ڪري ڪڍيو ويندو آهي. هي مثال عام هيلو، دنيا کان ٿورو وڌيڪ پيچيده آهي - صرف اهو ڏيکارڻ لاءِ ته اتي هڪ لائبريري آهي.

ٻيو ڇا اسان ڏسون ٿا اهو اهم آهي؟ ڪوڊ پيڪيجز ۾ منظم ڪيو ويو آهي. ۽ توهان جي پنهنجي ڪوڊ ۾ هڪ پيڪيج استعمال ڪرڻ لاء، توهان کي درآمد ڪرڻ جي هدايت کي استعمال ڪندي درآمد ڪرڻ جي ضرورت آهي - اهو پڻ اهم آهي. اسان ان کي لانچ ڪيو - اهو ڪم ڪري ٿو. زبردست!

اچو ته ڪوشش ڪريون ڪجھ وڌيڪ پيچيده اڳتي: هيلو، دنيا، پر صرف هاڻي اهو هڪ http سرور آهي. اسان هتي دلچسپ ڇا ٿا ڏسو؟

Alexey Naydenov. ITooLabs. گو (گولانگ) ٽيليفون پليٽ فارم تي ترقي جو ڪيس. حصو 1

پهرين، فنڪشن هڪ پيٽرولر طور ڪم ڪري ٿو. مطلب ته اسان جو فنڪشن ”فرسٽ ڪلاس سٽيزن“ آهي ۽ توهان ان سان فنڪشنل انداز ۾ ڪيتريون ئي دلچسپ شيون ڪري سگهو ٿا. اڳيون اسان ڪجهه غير متوقع طور تي ڏسون ٿا: درآمد جي هدايت واري لنڪ سڌو سنئون GitHub مخزن ڏانهن. اھو صحيح آھي، اھو ئي طريقو آھي - ان کان علاوه، اھو اھو طريقو آھي جيڪو ٿيڻ گھرجي.

Go ۾، هڪ پيڪيج جو عالمگير سڃاڻپ ڪندڙ ان جي مخزن جو url آهي. اتي ھڪڙو خاص Goget افاديت آھي جيڪو سڀني انحصار کي آڻيندو، انھن کي ڊائون لوڊ ڪري، انھن کي انسٽال ڪري، انھن کي گڏ ڪري ۽ جيڪڏھن ضروري ھجي ته استعمال لاءِ تيار ڪري. ساڳئي وقت، Goget html-meta بابت ڄاڻي ٿو. ان جي مطابق، توهان هڪ http ڊاريڪٽري رکي سگهو ٿا جنهن ۾ توهان جي مخصوص مخزن جي لنڪ شامل هوندي (جيئن اسان ڪندا آهيون، مثال طور).

ٻيو ڇا ٿا ڏسون؟ Http ۽ Json معياري لائبريري ۾. اتي آهي، ظاھر آھي، introspection - Reflection، جيڪو استعمال ٿيڻ گھرجي انڪوڊنگ/json ۾، ڇاڪاڻ ته اسان ان لاءِ صرف ڪجھ صوابديدي اعتراض کي متبادل بڻايون ٿا.

اسان ان کي هلائيندا آهيون ۽ ڏسون ٿا ته اسان وٽ 20 لائينن ۾ ڪارائتو ڪوڊ آهي، جيڪو مشين جي موجوده اوسط لوڊ کي گڏ ڪري ٿو، هلائي ٿو ۽ رپورٽ ڪري ٿو (مشين تي جنهن تي اهو شروع ڪيو ويو آهي).
ٻيو ڇا ضروري آهي ته اسان هتي فوري طور تي ڏسي سگهون ٿا؟ اهو هڪ جامد بائنري (بائنري) ۾ مرتب ڪيو ويو آهي. هن بائنري جو ڪو به انحصار نه آهي، نه لائبريريون! توهان ان کي نقل ڪري سگهو ٿا ڪنهن به سسٽم تي، ان کي فوري طور تي هلائي، ۽ اهو ڪم ڪندو.

اچو ته اڳتي وڌون.

وڃو: طريقا ۽ انٽرفيس

وڃڻ جا طريقا آهن. توھان اعلان ڪري سگھو ٿا ھڪڙو طريقو ڪنھن به ڪسٽم قسم لاءِ. ان کان علاوه، اهو لازمي طور تي هڪ ساخت نه آهي، پر شايد ڪنهن قسم جو هڪ عرف. توھان N32 لاءِ عرف جو اعلان ڪري سگھو ٿا ۽ ان لاءِ طريقا لکو ڪجھ به ڪارآمد ڪم ڪرڻ لاءِ.

۽ هتي اسان پهريون ڀيرو بيوقوف ٿي ويا آهيون ... اهو ظاهر ٿيو ته گو وٽ اهڙا ڪلاس نه آهن. اهي جيڪي ڄاڻن ٿا Go شايد چون ٿا ته اتي قسم جي شموليت آهي، پر اهو مڪمل طور تي ٻيو ڪجهه آهي. جيترو جلدي هڪ ڊولپر ان کي وراثت وانگر سوچڻ بند ڪري ٿو، بهتر. گو ۾ ڪو به طبقو نه آهي، ۽ نه ئي ڪو وراثت آهي.

سوال! گوگل جي اڳواڻي ۾ ليکڪن جي ڪمپني اسان کي ڇا ڏنو آهي دنيا جي پيچيدگي کي ظاهر ڪرڻ لاءِ؟ انهن اسان کي انٽرفيس ڏنو!

Alexey Naydenov. ITooLabs. گو (گولانگ) ٽيليفون پليٽ فارم تي ترقي جو ڪيس. حصو 1

هڪ انٽرفيس هڪ خاص قسم آهي جيڪو توهان کي لکڻ جي اجازت ڏئي ٿو صرف طريقن، طريقن جي دستخط. وڌيڪ، ڪنهن به قسم جو جنهن لاء اهي طريقا موجود آهن (عمل ڪيو ويو آهي) هن انٽرفيس سان ملندو. ان جو مطلب اهو آهي ته توهان صرف هڪ قسم جي لاڳاپيل فنڪشن کي بيان ڪري سگهو ٿا، ٻئي لاء (جيڪو انهي انٽرفيس جي قسم سان ملندو آهي). اڳيون، هن انٽرفيس جي قسم جو هڪ متغير بيان ڪريو ۽ انهن مان ڪنهن به شئي کي تفويض ڪريو.

هارڊ ڪور جي مداحن لاءِ، مان چئي سگهان ٿو ته هي متغير اصل ۾ ٻه پوائنٽر هوندا: هڪ ڊيٽا ڏانهن، ٻيو بيان ڪندڙن جي هڪ خاص جدول ڏانهن، جيڪو هن خاص قسم لاءِ عام آهي، هن قسم جي انٽرفيس لاءِ. اهو آهي، ڪمپيلر ڳنڍڻ جي وقت اهڙي بيان ڪندڙ جدول ٺاهي ٿو.

۽ Go ۾، يقينا، اتي اشارو آهن باطل ڏانهن. لفظ انٽرفيس {} (ٻن گھڙيل ڪڙيون سان) ھڪڙو متغير آھي جيڪو توھان کي اصول ۾ ڪنھن شئي ڏانھن اشارو ڪرڻ جي اجازت ڏئي ٿو.
هينئر تائين سڀ ڪجهه ٺيڪ آهي، سڀ ڪجهه واقف آهي. ڪا به تعجب جي ڳالهه ناهي.

وڃو: goroutines

هاڻي اسان اچون ٿا ته اسان جي ڪهڙي دلچسپي آهي: هلڪو وزن وارو عمل - گو جي اصطلاحن ۾ گوروٽين (گوروٽين).

Alexey Naydenov. ITooLabs. گو (گولانگ) ٽيليفون پليٽ فارم تي ترقي جو ڪيس. حصو 1

  1. پهرين، اهي واقعي ٿلهي آهن (2 KB کان گهٽ).
  2. ٻيو، اهڙي گوروٽين ٺاهڻ جي قيمت ناگزير آهي: توهان هر سيڪنڊ کي هڪ هزار ٺاهي سگهو ٿا - ڪجھ به نه ٿيندو.
  3. اهي انهن جي پنهنجي شيڊولر طرفان خدمت ڪري رهيا آهن، جيڪو صرف هڪ گوروٽين کان ٻئي ڏانهن ڪنٽرول منتقل ڪري ٿو.
  4. هن معاملي ۾، ڪنٽرول هيٺ ڏنل ڪيسن ۾ منتقل ڪيو ويندو آهي:
    • جيڪڏهن وڃڻ جو اظهار سامهون اچي ٿو (جيڪڏهن گوروٽين ايندڙ گوروٽين شروع ٿئي ٿي)؛
    • جيڪڏهن بلاڪنگ ان پٽ/آئوٽ ڪال فعال آهي؛
    • جيڪڏهن ڪچرو گڏ ڪرڻ شروع ٿئي ٿو؛
    • جيڪڏهن چينلن سان ڪجهه آپريشن شروع ڪيو ويو آهي.

اهو آهي، جڏهن به هڪ گو پروگرام ڪمپيوٽر تي هلندو آهي، اهو سسٽم ۾ ڪور جو تعداد طئي ڪري ٿو، ڪيترن ئي موضوعن کي لانچ ڪري ٿو جيئن گهربل هجي (ڪيترا ڪور سسٽم ۾ آهن يا توهان ڪيترا ٻڌايو). ان جي مطابق، شيڊولر هلائيندو انهن هلڪو وزن جي ٿريڊز تي عملدرآمد جي انهن سڀني آپريٽنگ سسٽم ٿريڊز تي هر ڪور ۾.

اها ڳالهه نوٽ ڪرڻ گهرجي ته هن لوهه کي استعمال ڪرڻ لاء سڀ کان مؤثر طريقو آهي. ان کان علاوه جيڪو ڏيکاريو ويو آهي، اسان گهڻو ڪجهه ڪندا آهيون. اسان ٺاهيندا آهيون، مثال طور، ڊي پي آئي سسٽم جيڪي هڪ يونٽ کي 40 گيگاابٽ جي خدمت ڪرڻ جي اجازت ڏين ٿا (انحصار انهن لائنن ۾ ڇا ٿئي ٿو).

اتي، وڃڻ کان اڳ به، اسان بلڪل ساڳئي اسڪيم کي استعمال ڪيو خاص طور تي هن سبب لاءِ: ڇاڪاڻ ته اها اسان کي اجازت ڏئي ٿي ته پروسيسر ڪيش جي جڳهه کي محفوظ ڪري ۽ خاص طور تي او ايس جي حوالي سان سوئچز جو تعداد گھٽائي (جيڪو پڻ گهڻو وقت وٺندو آهي). مان ورجائي ٿو: هي لوهه کي استعمال ڪرڻ جو تمام مؤثر طريقو آهي.

ھي سادو 21 لائن مثال ھڪڙو مثال آھي جيڪو صرف گونج سرور ڪندو آھي. مهرباني ڪري نوٽ ڪريو ته خدمت فنڪشن انتهائي سادو آهي، اهو لڪير آهي. ڪو به ڪال بڪ نه آهي، نه تڪليف ۽ سوچڻ جي ضرورت آهي ... توهان صرف پڙهو ۽ لکو!

ساڳئي وقت، جيڪڏهن توهان پڙهو ۽ لکو، اهو اصل ۾ بلاڪ ٿيڻ گهرجي - هي گوروٽين صرف هڪ قطار ۾ رکيل آهي ۽ شيڊولر طرفان ورتو وڃي ٿو جڏهن عملدرآمد ٻيهر ممڪن ٿي وڃي. اهو آهي، هي سادو ڪوڊ هڪ گونج سرور جي طور تي ڪم ڪري سگهي ٿو ڪيترن ئي ڪنيڪشن لاءِ جيئن انهي مشين تي او ايس اجازت ڏئي ٿي.

تمام جلد جاري ڪيو ويندو ...

ڪجھ اشتهار 🙂

اسان سان گڏ رهڻ لاء توهان جي مهرباني. ڇا توهان اسان جا مضمون پسند ڪندا آهيو؟ وڌيڪ دلچسپ مواد ڏسڻ چاهيو ٿا؟ آرڊر ڏيڻ يا دوستن کي سفارش ڪندي اسان جي مدد ڪريو، ڪلائوڊ VPS ڊولپرز لاءِ $4.99 کان, داخلا-سطح سرورز جو هڪ منفرد اينالاگ، جيڪو اسان توهان لاءِ ايجاد ڪيو هو: VPS (KVM) E5-2697 v3 (6 Cores) 10GB DDR4 480GB SSD 1Gbps جي باري ۾ سڄي حقيقت $19 کان يا سرور ڪيئن شيئر ڪجي؟ (RAID1 ۽ RAID10 سان دستياب آهي، 24 ڪور تائين ۽ 40GB DDR4 تائين).

ڊيل R730xd 2x سستا Equinix Tier IV ڊيٽا سينٽر ۾ Amsterdam ۾؟ صرف هتي 2 x Intel TetraDeca-Core Xeon 2x E5-2697v3 2.6GHz 14C 64GB DDR4 4x960GB SSD 1Gbps 100 TV $199 کان هالينڊ ۾! ڊيل R420 - 2x E5-2430 2.2Ghz 6C 128GB DDR3 2x960GB SSD 1Gbps 100TB - $99 کان! جي باري ۾ پڙهو انفراسٽرڪچر ڪارپوريشن ڪيئن ٺاهيو. ڪلاس ڊيل R730xd E5-2650 v4 سرورز جي استعمال سان 9000 يورو جي قيمت هڪ پني لاءِ؟

جو ذريعو: www.habr.com

تبصرو شامل ڪريو