Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 8702257
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: June 13, 20262026-06-13T02:36:29+00:00 2026-06-13T02:36:29+00:00

In C++03 I used pthread with a self-built thread pool that always kept a

  • 0

In C++03 I used pthread with a self-built thread pool that always kept a couple of threads running (since pthread_create is slow), this way I was able to launch threads for small tasks without thinking about performance issues.

Now, in C++11 we have std::thread. I guess the standard doesn’t say anything about the specific implementation, so my question is about the standard library implementations. Are they generally opting for a pooled approach where constructing std::threads is cheap (and e.g. doesn’t call pthread_create on posix), or will std::thread just be a wrapper?

In other words, is a thread pool still recommended in C++11, or should I just create a std::thread whenever I need one and leave performance up to the standard library?

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-06-13T02:36:31+00:00Added an answer on June 13, 2026 at 2:36 am

    Generally, std::thread should be a minimal wrapper around underlying system primitive. For example, if you’re on pthread platform, you can test with the following program that no matter how many threads you create, they are all created with unique pthread_t ids (which implies they’re created on the fly and not borrowed from a thread pool):

    #include <assert.h>
    #include <mutex>
    #include <set>
    #include <thread>
    #include <vector>
    
    #include <pthread.h>
    
    int main() {
      std::vector<std::thread> workers;
      std::set<long long> thread_ids;
      std::mutex m;
      const int n = 1024;
    
      for (int i = 0; i < n; ++i) {
        workers.push_back(std::thread([&] {
          std::lock_guard<std::mutex> lock(m);
          thread_ids.insert(pthread_self());
        }));
      }
      for (auto& worker : workers) {
        worker.join();
      }
      assert(thread_ids.size() == n);
    
      return 0;
    }
    

    So thread pools still make perfect sense. That said, I’ve seen a video where C++ committee members discussed thread pools with regard to std::async (IIRC), but I can’t find it right now.

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

I have a queue structure that is being used by several pthreads. The threads
I have used the following code to create two threads: //header files #include <pthread.h>
I have a counter that's used by multiple threads to write to a specific
I've read about synchronized thread in Posix threads tutorial . They say that function
Can gprof be used to profile a multi-threaded program that uses pthreads? That is,
Since the PTHREAD_COND_INITIALIZER is actually a structure initializer, it may be used to initialize
I'm just playing around with threads to get used to them, so I wanted
I used Eclispse Indigo + CDT 8.0.2 + cygwin to develope a multi-thread systerm,
pthread_cond_broadcast is used to wake up several threads waiting on a condition variable. But,
I have a segue that I do like this: [self performSegueWithIdentifier:@PlanToBusiness sender:self]; it works

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.