تأمين مورد كائن المزامنة (mutex). الإخراج هو القفل. طالما أن موتر القفل
على قيد الحياة، أي طلب آخر لاستخدام `MutexLock` مع كائن المزامنة هذا سوف ينتظر.
يعد هذا مفيدًا بشكل خاص لإنشاء قسم مهم عند استخدامه مع `MutexLockIdentity`:
mutex = mutex_v2(
shared_name=handle_name, container=container, name=name)
def execute_in_critical_section(fn, *args, **kwargs):
lock = gen_resource_variable_ops.mutex_lock(mutex)
with ops.control_dependencies([lock]):
r = fn(*args, **kwargs)
with ops.control_dependencies(nest.flatten(r)):
with ops.colocate_with(mutex):
ensure_lock_exists = mutex_lock_identity(lock)
# Make sure that if any element of r is accessed, all of
# them are executed together.
r = nest.map_structure(tf.identity, r)
with ops.control_dependencies([ensure_lock_exists]):
return nest.map_structure(tf.identity, r)
أثناء تشغيل `fn` في القسم الحرج، لا يجوز تشغيل أي وظائف أخرى ترغب في استخدام هذا القسم الحرج.غالبًا ما تكون حالة الاستخدام هي أن عمليتين تنفيذيتين لنفس الرسم البياني، بالتوازي، ترغبان في تشغيل `fn`؛ ونرغب في التأكد من تنفيذ واحد منهم فقط في كل مرة. يعد هذا مهمًا بشكل خاص إذا قام `fn` بتعديل متغير واحد أو أكثر في المرة الواحدة.
ومن المفيد أيضًا أن تتشارك وظيفتان منفصلتان في مورد ما، ولكننا نرغب في التأكد من أن الاستخدام حصري.
الثوابت
خيط | OP_NAME | اسم هذه العملية كما هو معروف بواسطة محرك TensorFlow الأساسي |
الأساليب العامة
الإخراج < نوع > | كإخراج () إرجاع المقبض الرمزي للموتر. |
ثابت MutexLock | |
الإخراج <؟> | قفل كائن المزامنة () موتر يحتفظ بمؤشر مشترك لقفل كائن المزامنة؛ عندما يتم تدمير Tensor، ينخفض عدد الاستخدام على المؤشر المشترك بمقدار 1. |
الطرق الموروثة
الثوابت
السلسلة النهائية الثابتة العامة OP_NAME
اسم هذه العملية كما هو معروف بواسطة محرك TensorFlow الأساسي
الأساليب العامة
الإخراج العام <TType> asOutput ()
إرجاع المقبض الرمزي للموتر.
المدخلات إلى عمليات TensorFlow هي مخرجات عملية TensorFlow أخرى. يتم استخدام هذه الطريقة للحصول على مقبض رمزي يمثل حساب الإدخال.
إنشاء MutexLock ثابت عام (نطاق النطاق ، المعامل <?> mutex)
طريقة المصنع لإنشاء فئة تغلف عملية MutexLock جديدة.
حدود
نِطَاق | النطاق الحالي |
---|---|
كائن المزامنة | مورد كائن المزامنة المطلوب قفله. |
المرتجعات
- مثيل جديد من MutexLock
الإخراج العام <؟> mutexLock ()
موتر يحتفظ بمؤشر مشترك لقفل كائن المزامنة؛ عندما يتم تدمير Tensor، ينخفض عدد الاستخدام على المؤشر المشترك بمقدار 1. وعندما يصل إلى 0، يتم تحرير القفل.