お世話になっております。

ゲームで使用する為の
std::threadを使ったジョブシステムが作れないと考えています。
想定しているインタフェースとしては以下の通りです。

// コア数を指定してその分std::threadを生成
int threadNum = 8;
JobManager.Create( threadNum );

//実行時
int num = 10000;
// 実行(オブジェクト数、関数ポインタ、void*のデータ).
JobManager.Start( num, pFunc, pData);
// 待機.
JobManager.Join();

std::threadは、コンストラクタの時点で関数ポインタを渡さなければならず
また、スレッド生成時にはかなりのコストがかかる為
ゲームのように毎フレームStart()、Join()を実行するのは困難だと思います。

std::threadでジョブシステムを実装することは難しいのでしょうか?
以上、よろしくお願いいたします。