- regex parsing
- std::map
- representation of smart pointer
- representation of memory allocator
- performance of local server
- performance of client
- sys/types.h
- sys/sockets.h
- netinet/in.h
- unistd.h
- kqueue
- performance of chat server
- signal.h
- interrupt foreign signals
- fork()
- waitpid() - waiting for chaild process exit code
- pipe();
- STDIN_FILENO, STDOUT_FILENO
- redirect std in/out
- mkfifo()
- infinite read from one file and write to another
- socketpair()
- pair two separate processes
- ftok() / msgget() / msgrcv() / msgsnd() / msgctl()
- read from queue and write to file
- linked to real file in OS
- mq_open() / mq_recieve() / mq_send() / mq_unlink() / mq_close()
- read from queue and write to file
- not linked to file in OS
- ftok() / semget() / semctl()
- file access control
- sem_open() / sem_wait() / sem_close() / sem_unlink()
- file access control
- ftok() / shmget() / shmctl() / shmat() /shmdt()
- allocate shared memory segment
- shm_open() / ftruncate() / mmap() / munmap() / shm_unlink()
- allocate shared memory segment
- pthread_t / pthread_create() / pthread_join() / pthread_detach()
- create thread, sent data to thread and recieve data back
- pthread_mutex_t / pthread_spinlock_t / pthread_rwlock_t
- pthraed_mutex_lock() / pthread_spin_lock() / pthread_rwlock_wrlock()
- pthread_mutex_unlock() / pthread_spin_unlock() / pthread_rwlock_unlock()
- pthread_mutex_destroy() / pthread_spin_destroy() / pthread_rwlock_destroy()
- create different types of mutex
- pthread_cond_t / pthread_barrier_t / pthread_once_t
- pthread_cond_wait() / pthread_barrier_init() / pthread_barrier_wait()
- pthread_cond_destroy() / pthread_barrier_destroy()
- pthread_once()
- synchronise threads by make them wait
- std::thread / .join() / .detach()
- std::mutex / .lock() / .trylock() / .unlock()
- std::unique_lockstd::mutex
- std::condition_variable
- .wait() / .wait_for() /.wait_until() / .notify_one() /.notify_all()
- std::future / std::async() / .get()
- C++11 thread tools
- merge sort algorithm with OpenMP multi-threading
HTTP Server, assept http requests and send 200 code response and file content if file exists and 404 code if it's not. Multithreaded realization on kqueue and epoll.
Execution command format: ./final -h -p -d example: ./final -h 127.0.0.1 -p 4444 -d ~/tmp
Test request command example: curl -v localhost:4444/index.html
Link to curse: C++ Multithreaded Programming