线程安全的list封装
更多...
#include <da_concurrent_vector.hpp>
|
|
using | vector_type = std::vector< T > |
| |
|
using | value_type = vector_type::value_type |
| |
|
using | reference = vector_type::reference |
| |
|
using | const_reference = vector_type::const_reference |
| |
|
using | size_type = vector_type::size_type |
| |
|
using | iterator = vector_type::iterator |
| |
|
using | const_iterator = vector_type::const_iterator |
| |
|
using | mutex_type = std::mutex |
| |
|
using | lock_guard_type = std::lock_guard< mutex_type > |
| |
|
using | unique_lock_type = std::unique_lock< mutex_type > |
| |
|
|
| da_concurrent_vector (size_type count) |
| |
|
| da_concurrent_vector (std::initializer_list< T > init) |
| |
|
reference | front () |
| |
|
const_reference | front () const |
| |
|
reference | back () |
| |
|
const_reference | back () const |
| |
|
bool | empty () const |
| |
|
size_type | size () const |
| |
|
void | clear () |
| |
|
iterator | insert (iterator pos, const T &value) |
| |
|
iterator | insert (const_iterator pos, const T &value) |
| |
|
void | insert (iterator pos, size_type count, const T &value) |
| |
|
iterator | insert (const_iterator pos, size_type count, const T &value) |
| |
|
void | push_back (const T &value) |
| |
|
void | push_front (const T &value) |
| |
|
void | pop_front () |
| |
|
void | pop_back () |
| |
|
iterator | erase (iterator pos) |
| |
|
iterator | erase (const_iterator pos) |
| |
|
iterator | erase (iterator first, iterator last) |
| |
|
iterator | erase (const_iterator first, const_iterator last) |
| |
|
iterator | begin () |
| |
|
const_iterator | begin () const |
| |
|
iterator | end () |
| |
|
const_iterator | end () const |
| |
template<typename T>
class da_concurrent_vector< T >
线程安全的list封装
- 注解
- 仅仅是对原来的std::list进行并行封装,不考虑极致效率,对插入时安全的,
-
这并不是完全线程安全的容器,例如在进行迭代时,是无法保证安全性的,这时候需要外部锁来保证线程安全. 另外,对于删除是不确定的,因为你有可能在不同线程拿了有覆盖范围的迭代器,在某个线程已经删除了,但在别的线程 又对已经剔除的迭代器进行删除,这样就导致不可预料的情况,因此,迭代操作是要额外加锁,或者保证只在某个线程进行删除, 或者不同线程删除的元素是不同的
- 作者
- czy
该类的文档由以下文件生成: