سؤال

وقد كتبت القليل من بيثون التطبيق هنا يمكنك أن ترى كيف مدير المهمة تبدو خلال نموذجي تشغيل.
(المصدر: weinzierl.اسم)

في حين أن التطبيق هو تماما مؤشرات, لا غرابة في ذلك واحد فقط يستخدم وحدة المعالجة المركزية الأساسية.بغض النظر عن حقيقة أن معظم الحديثة لغات البرمجة تدعم خاصية تعدد, مخطوطات يمكن تشغيلها على واحد وحدة المعالجة المركزية الأساسية فقط.

Ruby, Python, Lua, PHP كل ما يمكن أن تعمل فقط على جوهر واحد.حتى إرلانج ، والتي يقال أن تكون جيدة وخاصة البرمجة المتزامنة, يتأثر.

هل هناك لغة البرمجة التي بنيت في دعم المواضيع التي لا تقتصر على جوهر واحد ؟

يختتم

الأجوبة ليست تماما ما كنت أتوقع ، ولكن على TCL الجواب يقترب.أود أن أضيف perl, الذي (مثل الكثير من TCL) وقد مترجم القائم على المواضيع.

Jython, IronPython و رائع تندرج تحت مظلة الجمع بين ثبوت اللغة مع ما ثبت الجهاز الظاهري من لغة أخرى.شكرا على تلميحات في هذا اتجاه.

اخترت ايدن بيل الإجابة الإجابة المقبولة.وقال انه لا توحي لغة معينة لكن تصريحاته كانت معظم الثاقبة لي.

هل كانت مفيدة؟

المحلول

موضوع الجملة قد تكون ثابتة ، ولكن التنفيذ عبر أنظمة التشغيل و الأجهزة الظاهرية قد تتغير

الخاص بك لغة البرمجة استخدام صحيح خيوط على نظام التشغيل واحد وهمية-المواضيع على آخر.

إذا كان لديك متطلبات الأداء ، قد يكون من المفيد النظر إلى التأكد من أن كتابتها المواضيع تتراجع إلى الأكثر فائدة طبقة في نظام التشغيل.Userspace المواضيع سوف تكون أسرع, ولكن إلى حد كبير حجب موضوع النشاط المواضيع النواة سيكون أفضل.

نصائح أخرى

يبدو أنك تستخدم تعريف "لغة البرمجة" التي قد تثير بعض الدهشة وأنا لا أعرف ما يعني أن حول متطلبات أخرى.

على أي حال, هل تعتبر TCL ؟ انها لن تفعل ما تريد ، على ما أعتقد.

منذ كنت إلى حد ما بما في ذلك للأغراض العامة اللغات في القائمة الخاصة بك, أنا لا أعرف كيف الثقيلة التنفيذ هو مقبول لديك.سأكون مندهشا إذا كان واحد من ملايين مخطط تطبيقات لا إلى المواضيع المحلية ، ولكن من على قمة رأسي ، لا أستطيع إلا أن أتذكر MzScheme لكن أتذكر وقد انخفض التأييد.بالتأكيد بعض Common LISP تطبيقات القيام بذلك بشكل جيد.إذا ادراجها Common Lisp (ECL) ، فإنه قد عمل لك.لا استخدامه على الرغم من ذلك لست متأكدا ما الدولة من خيوط الدعم ، وهذا بالطبع يعتمد على منصة.

التحديث أيضا, إذا كنت أتذكر بشكل صحيح ، GHC هاسكل لا تفعل تماما ما كنت طالبا ، ولكن قد تفعل ما تريد منذ ، مرة أخرى ، على ما أذكر ، وسوف تدور من مواليد الموضوع في جوهر أو نحو ذلك ثم تشغيل المواضيع عبر تلك....

يمكنك بحرية متعددة الخيط مع الثعبان اللغة في تطبيقات مثل Jython (على JVM ، كما @Reginaldo يذكر رائع) و IronPython (على .NET).الكلاسيكية CPython تنفيذ لغة بيثون ، كما @دان تعليق يذكر ، multiprocessing (بدلا من threading) هو الطريق بحرية استخدام العديد من النوى كما المتوفرة لديك

كما رائع يقوم على آلة جافا الافتراضية ، يمكنك الحصول على دعم حقيقي من المواضيع.

F# على .صافي 4 ممتازة دعم البرمجة المتوازية للغاية الأداء الجيد فضلا عن الدعم .fsx الملفات التي تم تصميمها خصيصا البرمجة.انا اقوم البرمجة باستخدام F#.

إجابة عن هذا السؤال تم قبوله بالفعل ، ولكن فقط إلى إضافة هذا إلى جانب tcl فقط تفسير لغة البرمجة التي أعرف أنه يدعم خاصية تعدد وموضوع آمن البرمجة هذا hgh.

هذا hgh صمم من أسفل إلى دعم خاصية تعدد;كل جانب من جوانب اللغة هو موضوع آمنة;اللغة كانت تهدف إلى دعم SMP قابلية و خاصية تعدد أصلا.على سبيل المثال, يمكنك استخدام background المشغل لبدء موضوع جديد أو ThreadPool فئة لإدارة مجموعة من المواضيع.هذا hgh أيضا رمي استثناءات القاسم المشترك الأخطاء بحيث خيوط أخطاء (مثل المآزق المحتملة أو أخطاء مع خيوط واجهات برمجة التطبيقات مثل محاولة الاستيلاء على قفل هذا بالفعل عقد الترابط الحالي) هي مرئية على الفور إلى مبرمج.

هذا hgh بالإضافة إلى ذلك يدعم موضوع الموارد ؛ على سبيل المثال ، DatasourcePool المخصصات يتم التعامل مع موضوع الموارد المحلية;إذا كنت قد نسيت أن ارتكاب أو استرجاع الصفقة قبل نهاية الخيط الخاص بك ، موضوع الموارد المعالجة DatasourcePool الطبقة استرجاع المعاملة تلقائيا و رمي استثناء مع صديقة للمستخدم معلومات عن المشكلة وكيف تم حلها.

ربما أنها يمكن أن تكون مفيدة بالنسبة لك - لمحة عامة عن هذا hgh ميزات هنا: لماذا استخدام هذا hgh?.

CSScript في تركيبة مع موازية امتداد لا يجب أن يكون خيارا سيئا.يمكنك كتابة التعليمات البرمجية الخاصة بك في نقي C# ثم تشغيل البرنامج النصي.

لا علاقة خيوط آلية.المشكلة هي أن (على سبيل المثال في بيثون) لديك للحصول على مترجم سبيل المثال لتشغيل البرنامج النصي.للحصول على مترجم عليك قفل كما هو ذاهب للحفاظ على مرجع وغيرها وتحتاج إلى تجنب الوصول المتزامن إلى هذه الكائنات.يستخدم الثعبان pthread وهم الحقيقي المواضيع ولكن عندما كنت تعمل مع بيثون الكائنات فقط موضوع واحد يشغل الآخرين في الانتظار.يسمون هذا جيل (مترجم العالمي قفل) وهي المشكلة الرئيسية التي تجعل الحقيقي التوازي المستحيل داخل العملية.

https://wiki.python.org/moin/GlobalInterpreterLock

وغيرها من لغات البرمجة قد يكون نوعا من نفس المشكلة.

المكر يدعم POSIX المواضيع التي أعتقد هي المواضيع الأجهزة.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top