nndeploy C++ API  0.2.0
nndeploy C++ API
Public Member Functions | Protected Attributes | List of all members
nndeploy::thread_pool::LocalThread Class Reference

#include <local_thread.h>

Collaboration diagram for nndeploy::thread_pool::LocalThread:
[legend]

Public Member Functions

void destroy ()
 
void init ()
 
 LocalThread ()
 
bool popTask (RTask &task)
 
void pushTask (RTask &&task)
 
base::Status run ()
 
void setThreadPoolInfo (int index, std::vector< LocalThread * > *pool_threads, int total_thread_size)
 
bool stealTask (RTask &task)
 
 ~LocalThread ()
 

Protected Attributes

std::condition_variable cv_
 
bool done_
 
int index_
 
std::mutex mutex_
 
std::vector< LocalThread * > * pool_threads_
 
SafeWSQueue< RTaskprimary_queue_
 
std::vector< int > steal_targets_
 
std::thread thread_
 
int total_thread_size_
 

Detailed Description

Definition at line 15 of file local_thread.h.

Constructor & Destructor Documentation

◆ LocalThread()

nndeploy::thread_pool::LocalThread::LocalThread ( )
inlineexplicit

Definition at line 17 of file local_thread.h.

◆ ~LocalThread()

nndeploy::thread_pool::LocalThread::~LocalThread ( )
inline

Definition at line 24 of file local_thread.h.

Here is the call graph for this function:

Member Function Documentation

◆ destroy()

void nndeploy::thread_pool::LocalThread::destroy ( )
inline

所有线程类的 destroy 函数应该是一样的 但是init函数不一样,因为线程构造函数不同

Returns

Definition at line 31 of file local_thread.h.

◆ init()

void nndeploy::thread_pool::LocalThread::init ( )
inline

Definition at line 38 of file local_thread.h.

Here is the call graph for this function:

◆ popTask()

bool nndeploy::thread_pool::LocalThread::popTask ( RTask task)
inline

从本地弹出一个任务

Parameters
task
Returns

Definition at line 95 of file local_thread.h.

◆ pushTask()

void nndeploy::thread_pool::LocalThread::pushTask ( RTask &&  task)
inline

依次push到任一队列里。如果都失败,则yield,然后重新push

Parameters
task
Returns

Definition at line 83 of file local_thread.h.

◆ run()

base::Status nndeploy::thread_pool::LocalThread::run ( )
inline

线程执行函数

Returns

Definition at line 60 of file local_thread.h.

Here is the call graph for this function:

◆ setThreadPoolInfo()

void nndeploy::thread_pool::LocalThread::setThreadPoolInfo ( int  index,
std::vector< LocalThread * > *  pool_threads,
int  total_thread_size 
)
inline

Definition at line 49 of file local_thread.h.

◆ stealTask()

bool nndeploy::thread_pool::LocalThread::stealTask ( RTask task)
inline

从其他线程窃取一个任务

Parameters
task
Returns

Definition at line 102 of file local_thread.h.

Member Data Documentation

◆ cv_

std::condition_variable nndeploy::thread_pool::LocalThread::cv_
protected

Definition at line 126 of file local_thread.h.

◆ done_

bool nndeploy::thread_pool::LocalThread::done_
protected

Definition at line 118 of file local_thread.h.

◆ index_

int nndeploy::thread_pool::LocalThread::index_
protected

Definition at line 120 of file local_thread.h.

◆ mutex_

std::mutex nndeploy::thread_pool::LocalThread::mutex_
protected

Definition at line 125 of file local_thread.h.

◆ pool_threads_

std::vector<LocalThread *>* nndeploy::thread_pool::LocalThread::pool_threads_
protected

Definition at line 123 of file local_thread.h.

◆ primary_queue_

SafeWSQueue<RTask> nndeploy::thread_pool::LocalThread::primary_queue_
protected

Definition at line 122 of file local_thread.h.

◆ steal_targets_

std::vector<int> nndeploy::thread_pool::LocalThread::steal_targets_
protected

Definition at line 124 of file local_thread.h.

◆ thread_

std::thread nndeploy::thread_pool::LocalThread::thread_
protected

Definition at line 119 of file local_thread.h.

◆ total_thread_size_

int nndeploy::thread_pool::LocalThread::total_thread_size_
protected

Definition at line 121 of file local_thread.h.


The documentation for this class was generated from the following file: