Skip to content

Instantly share code, notes, and snippets.

@carlchen0928
carlchen0928 / simple_threadpool.cpp
Last active June 17, 2019 20:36
Simple thread pool. Don't support user wait all task done.
#include "join_threads.h"
#include "threadsafe_subtle_queue.cpp"
#include "threadsafe_exceptionsafe_queue.cpp"
#include <thread>
#include <vector>
#include <atomic>
/*
* Simplest thread pool implementation, exception safe.
* Don't support user wait all task finish.
@carlchen0928
carlchen0928 / spinlock_mutex.cpp
Created June 29, 2015 02:52
c++ spinlock && test with mutex
#include <atomic>
/*
*
* spin lock implemented by C++ std::atomic
*
*/
class spinlock_mutex
{
@carlchen0928
carlchen0928 / threadsafe_subtle_queue.cpp
Last active August 29, 2015 14:23
thread safe queue with linked list and two lock for head and tail.
#include <mutex>
#include <memory>
#include <stdio.h>
#include <condition_variable>
#define DEBUG1
template <class T>
class threadsafe_subtle_queue
{
@carlchen0928
carlchen0928 / consumer_producer.cpp
Created June 23, 2015 07:55
simple consumer and producer
#include <iostream>
#include <stdio.h>
#include <stack>
#include <vector>
#include <string>
#include <exception>
#include <mutex>
#include <thread>
#include <condition_variable>
#include <queue>
@carlchen0928
carlchen0928 / threadsafe_queue.cpp
Created June 23, 2015 07:51
thread safe queue with condition_variable and mutex
#include <queue>
#include <mutex>
#include <memory>
#include <condition_variable>
#include <stdio.h>
#include <iostream>
/*
* thread safe queue implementation.
* Use a mutex and condition_variable to keep thread safe.
@carlchen0928
carlchen0928 / threadsafe_exceptionsafe_queue.cpp
Last active August 29, 2015 14:23
thread safe && exception safe queue
#include <queue>
#include <mutex>
#include <memory>
#include <condition_variable>
#include <stdio.h>
#include <iostream>
/*
* thread safe && exception safe queue implementation.
* Save item in shared_ptr in the queue to make sure all