Coder Social home page Coder Social logo

thread_pool's Introduction

thread_pool

C++11 thread pool for everyday use.

Requirements

Installation

  • thread_pool is a header only library.
#include "thread_pool.hpp"

Basic Usage

  • You can queue any function with any parameter with any return type. Enqueue and forget.
#include "thread_pool.hpp"
#include <iostream>
#include <thread>
#include <format>
#include <functional>

int squared(int input) {
	return input * input;
}

std::string float_to_string(float input) {
	return std::format("{:02.4f}", input);
}

class square {
	int a_;
public:
	square(int a) : a_(a) {}
	int area() { return a_ * a_; }
};

int main()
{
	thread_pool tx;
	square abcd(5);

	auto r1 = tx.enqueue(squared, 2);
	auto r2 = tx.enqueue(float_to_string, 2.4f);
	auto r3 = tx.enqueue([&abcd] { return abcd.area(); });

	std::this_thread::sleep_for(std::chrono::seconds(1));
	
	if (r1.wait_for(std::chrono::milliseconds(0)) == std::future_status::ready) {
		std::cout << r1.get();
	}

	return 0;
}

thread_pool's People

Contributors

ademirtug avatar

Stargazers

 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.