سؤال

ولقد اكتشفت من خلال التجربة والخطأ إلى أن وظيفة محرك MATLAB ليس مسار آمنة تماما.

لا أحد يعرف القواعد؟

واكتشفت من خلال التجربة والخطأ:

في ويندوز، والاتصال MATLAB هو عبر COM، لذلك تطبيق قواعد COM شقة خيوط. يجب أن يحدث كل المكالمات في نفس الموضوع، ولكن يمكن أن يحدث وصلات متعددة في مواضيع متعددة طالما يتم عزل كل اتصال.

ومن الإجابات أدناه، يبدو أن هذا ليس هو الحال على UNIX، حيث المكالمات يمكن أن تكون مصنوعة من المواضيع متعددة طالما يتم إجراء المكالمات بشكل متسلسل.

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

المحلول

وعندما بدأت لأول مرة باستخدام محرك، لم أكن تشغيل عبر أي وثائق على سلامة موضوع، لذلك افترضت أنه لم يكن موضوع آمنة.

ويمكنني استخدام ++ الفئة C لمزامنة الوصول إلى مثيل المحرك. للمزيد من التصاميم المعالجة المتوازية، I مثيل مثيلات متعددة من الطبقة المحرك.

و(تحرير) أنا باستخدام MATLAB R14 على سولاريس. I فتح محرك باستخدام دعوة "engOpen، وإغلاقه باستخدام 'engClose. برنامجي لا يتعطل عندما يتم استدعاء إغلاق بخيط رفيع مختلفة من تلك التي تسمى المفتوحة.

نصائح أخرى

و

<اقتباس فقرة>   

والمكتبات MATLAB ليست ذات ألوان.   إذا قمت بإنشاء مؤشرات   التطبيقات، تأكد من واحد فقط   موضوع يصل المحرك   التطبيق.

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

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

ويمكنك استخدام engOpenSingleUse بدلا من استخدام engOpen لجعل موضوع أكثر من واحد يعمل بشكل منفصل. (فقط Windows)

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