私はこのC++は同じクラス変数を共有するスレッドで作成されますか?
class ThreadPool
{
public:
ThreadPool();
ThreadPool(int total_thread);
~ThreadPool();
void active_pool(void);
void* thread_start_routine(void* run_data);
private:
int total_thread_;
queue<TASK*> task_queue;
sem_t* task_queue_mutex_;//Same function as mutex semaphore in P-C problem.
sem_t* task_queue_full_;//Same function as full semaphore in P-C problem.
};
のようなクラスを持っていると私はactive_pool関数内の複数のスレッドを作成し、各スレッドエントリー機能がthread_start_routineです。
私の質問は〜それぞれがキューtask_queueと/ポップをプッシュする必要がある場合、スレッドの作成を通じて、すべてのスレッドが同じキューを参照するか、彼らが見た各キューは単なるローカルコピーであるだろう
はありがとうということです
?私はそれを得ることができません。 –
@HaohaoChangスレッドは、すべて同じプロセスのアドレス空間を共有します。共有アドレス空間が必要ない場合は、スレッドを必要とせず、それぞれが独自のアドレス空間を持つプロセスを分離します。 –