Namespaces
Variants
Views
Actions

Difference between revisions of "cpp/thread/timed mutex"

From cppreference.com
< cpp‎ | thread
m (r2.7.3) (Robot: Adding de, es, fr, it, ja, pt, ru, zh)
m (fmt)
 
(14 intermediate revisions by 6 users not shown)
Line 1: Line 1:
 
{{cpp/title|timed_mutex}}
 
{{cpp/title|timed_mutex}}
 
{{cpp/thread/timed_mutex/navbar}}
 
{{cpp/thread/timed_mutex/navbar}}
{{ddcl | header=mutex | notes={{mark since c++11}} | 1=
+
{{ddcl|header=mutex|since=c++11|1=
 
class timed_mutex;
 
class timed_mutex;
 
}}
 
}}
Line 7: Line 7:
 
The {{tt|timed_mutex}} class is a synchronization primitive that can be used to protect shared data from being simultaneously accessed by multiple threads.  
 
The {{tt|timed_mutex}} class is a synchronization primitive that can be used to protect shared data from being simultaneously accessed by multiple threads.  
  
In a manner similar to [[cpp/thread/mutex|{{tt|mutex}}]], {{tt|timed_mutex}} offers exclusive, non-recursive ownership semantics. In addition, {{tt|timed_mutex}} provides the ability to attempt to claim ownership of a {{tt|timed_mutex}} with a timeout via the [[cpp/thread/timed_mutex/try_lock_for|{{tt|try_lock_for}}]] and [[cpp/thread/timed_mutex/try_lock_until|{{tt|try_lock_until}}]] methods.
+
In a manner similar to {{ltt|cpp/thread/mutex}}, {{tt|timed_mutex}} offers exclusive, non-recursive ownership semantics. In addition, {{tt|timed_mutex}} provides the ability to attempt to claim ownership of a {{tt|timed_mutex}} with a timeout via the member functions {{ltf|cpp/thread/timed_mutex/try_lock_for}} and {{ltf|cpp/thread/timed_mutex/try_lock_until}}.
  
The {{tt|timed_mutex}} class is non-copyable.
+
The {{tt|timed_mutex}} class satisfies all requirements of {{named req|TimedMutex}} and {{named req|StandardLayoutType}}.
  
 
===Member types===
 
===Member types===
{{dcl list begin}}
+
{{dsc begin}}
{{dcl list hitem | Member type | Definition}}
+
{{dsc hitem|Member type|Definition}}
{{dcl list item | {{tt|native_handle_type}} | ''implementation-defined''}}
+
{{dsc inc|cpp/thread/dsc native_handle_type|timed_mutex}}
{{dcl list end}}
+
{{dsc end}}
  
 
===Member functions===
 
===Member functions===
{{dcl list begin}}
+
{{dsc begin}}
{{dcl list template | cpp/thread/mutex/dcl list constructor | timed_mutex}}
+
{{dsc inc|cpp/thread/mutex/dsc constructor|timed_mutex}}
 +
{{dsc inc|cpp/thread/mutex/dsc destructor|timed_mutex}}
 +
{{dsc inc|cpp/thread/mutex/dsc operator{{=}}}}
  
{{dcl list h2 | Locking}}
+
{{dsc h2|Locking}}
{{dcl list template | cpp/thread/mutex/dcl list lock | timed_mutex}}
+
{{dsc inc|cpp/thread/mutex/dsc lock|timed_mutex}}
{{dcl list template | cpp/thread/mutex/dcl list try_lock | timed_mutex}}
+
{{dsc inc|cpp/thread/mutex/dsc try_lock|timed_mutex}}
{{dcl list template | cpp/thread/mutex/dcl list try_lock_for | timed_mutex}}
+
{{dsc inc|cpp/thread/mutex/dsc try_lock_for|timed_mutex}}
{{dcl list template | cpp/thread/mutex/dcl list try_lock_until | timed_mutex}}
+
{{dsc inc|cpp/thread/mutex/dsc try_lock_until|timed_mutex}}
{{dcl list template | cpp/thread/mutex/dcl list unlock | timed_mutex}}
+
{{dsc inc|cpp/thread/mutex/dsc unlock|timed_mutex}}
  
{{dcl list h2 | Native handle}}
+
{{dsc h2|Native handle}}
{{dcl list template | cpp/thread/mutex/dcl list native_handle | timed_mutex}}
+
{{dsc inc|cpp/thread/mutex/dsc native_handle|timed_mutex}}
{{dcl list end}}
+
{{dsc end}}
  
[[de:cpp/thread/timed mutex]]
+
{{langlinks|de|es|fr|it|ja|pt|ru|zh}}
[[es:cpp/thread/timed mutex]]
+
[[fr:cpp/thread/timed mutex]]
+
[[it:cpp/thread/timed mutex]]
+
[[ja:cpp/thread/timed mutex]]
+
[[pt:cpp/thread/timed mutex]]
+
[[ru:cpp/thread/timed mutex]]
+
[[zh:cpp/thread/timed mutex]]
+

Latest revision as of 07:48, 31 December 2023

 
 
Concurrency support library
Threads
(C++11)
(C++20)
this_thread namespace
(C++11)
(C++11)
(C++11)
Cooperative cancellation
Mutual exclusion
(C++11)
timed_mutex
(C++11)
Generic lock management
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
Condition variables
(C++11)
Semaphores
Latches and Barriers
(C++20)
(C++20)
Futures
(C++11)
(C++11)
(C++11)
(C++11)
Safe Reclamation
(C++26)
Hazard Pointers
Atomic types
(C++11)
(C++20)
Initialization of atomic types
(C++11)(deprecated in C++20)
(C++11)(deprecated in C++20)
Memory ordering
Free functions for atomic operations
Free functions for atomic flags
 
 
Defined in header <mutex>
class timed_mutex;
(since C++11)

The timed_mutex class is a synchronization primitive that can be used to protect shared data from being simultaneously accessed by multiple threads.

In a manner similar to mutex, timed_mutex offers exclusive, non-recursive ownership semantics. In addition, timed_mutex provides the ability to attempt to claim ownership of a timed_mutex with a timeout via the member functions try_lock_for() and try_lock_until().

The timed_mutex class satisfies all requirements of TimedMutex and StandardLayoutType.

Contents

[edit] Member types

Member type Definition
native_handle_type (optional*) implementation-defined[edit]

[edit] Member functions

constructs the mutex
(public member function) [edit]
destroys the mutex
(public member function) [edit]
operator=
[deleted]
not copy-assignable
(public member function) [edit]
Locking
locks the mutex, blocks if the mutex is not available
(public member function) [edit]
tries to lock the mutex, returns if the mutex is not available
(public member function) [edit]
tries to lock the mutex, returns if the mutex has been
unavailable for the specified timeout duration
(public member function) [edit]
tries to lock the mutex, returns if the mutex has been
unavailable until specified time point has been reached
(public member function) [edit]
unlocks the mutex
(public member function) [edit]
Native handle
returns the underlying implementation-defined native handle object
(public member function) [edit]