امکان اجرای مولتی تریدینگ در مود مولتی پراسسینگ وجود دارد؟
سلااااااااااااااااام امین جان
روزت بخیر
بله. شخصا انجام دادم. و کار جالبی هم هست.
فقط طبق دانشی که دارم این نکته وجود داره که درستش همینه که گفتی یعنی داخل مولتی پراسس، مولتی ترد داشته باشیم و برعکسش درست نیست.
و اینکه باید از مولتی ترد و مولتی پراسس در جای درستش استفاده کنیم که برامون بهینگی زمانی داشته باشه.
معمولا از مولتی ترد زمانی استفاده میکنیم که داریم کارهای مربوط به I/O میکنیم مثل درخواست گرفتن یه صفحه وب یا نوشتن تو فایل و دیتابیس و اینطور موارد.
و از مولتی پراسس زمانی استفاده میکنیم که پردازشهای سنگین یا زیاد داریم.
و اینکه تو مولتی ترد حافظه مشترک هست و GIL وجود داره. در واقع چند ترد دارن داخل یه پراسس با حافظه مشترک کار میکنن.
و داخل مولتی پراسس هر پراسس حافظه خودش رو داره و میتونیم توش چند تا ترد ایجاد کنیم.
نکته ی دیگه ای که هست اینه که برای ایجاد مولتی ترد توی تعدادش محدودیت کمتری داریم. اما تو مولتی پراسس یه حداکثر تعدادی وجود داره، و خوب نیست بیشتر از اون حداکثر پراسس بسازیم. تعدادش رو دقیق مطمئن نیستم ولی فک میکنم فرمولش اینه:
حداکثر تعداد پراسس = تعداد هستههای CPU ضربدر ۲
برای بدست آوردن تعداد پراسس تو لینوکس از دستور زیر استفاده میکنیم:
nproc
اگر مولتی پراسس همراه با مولتی ترد رو پیاده سازی کردی، لطفا تجربه ات رو اینجا بگو و اگر امکانش بود کدت رو هم بذار.