added sources and a quote to notes
This commit is contained in:
parent
9a5202821d
commit
4a84a1fe84
@ -75,6 +75,7 @@ regular expressions and threading
|
||||
|
||||
- this is where the burning starts to set in ...
|
||||
- threading works ... mostly
|
||||
- `great quote`_
|
||||
- compiles and runs with both compilers
|
||||
- run stress
|
||||
- regex examples
|
||||
@ -83,6 +84,7 @@ regular expressions and threading
|
||||
- instructions on building this found `here`_
|
||||
|
||||
.. _`here`: http://solarianprogrammer.com/2011/10/16/llvm-clang-libc-linux/
|
||||
.. _`great quote`: https://twitter.com/nedbat/status/194452404794691584
|
||||
|
||||
constexpr
|
||||
=========
|
||||
|
13
thread.cc
13
thread.cc
@ -1,18 +1,17 @@
|
||||
// based on: http://solarianprogrammer.com/2011/12/16/cpp-11-thread-tutorial/
|
||||
#include <iostream>
|
||||
#include <thread>
|
||||
|
||||
//This function will be called from a thread
|
||||
|
||||
void call_from_thread() {
|
||||
std::cout << "Hello, World" << std::endl;
|
||||
std::cout << "sleeping in the thread" << std::endl;
|
||||
std::this_thread::sleep_for(std::chrono::milliseconds(1000));
|
||||
std::cout << "finishing in thread" << std::endl;
|
||||
}
|
||||
|
||||
int main() {
|
||||
//Launch a thread
|
||||
std::thread t1(call_from_thread);
|
||||
|
||||
//Join the thread with the main thread
|
||||
std::cout << "printing from original thread" << std::endl;
|
||||
t1.join();
|
||||
|
||||
std::cout << "after join" << std::endl;
|
||||
return 0;
|
||||
}
|
||||
|
11
thread2.cc
11
thread2.cc
@ -1,25 +1,26 @@
|
||||
// from: http://solarianprogrammer.com/2011/12/16/cpp-11-thread-tutorial/
|
||||
#include <iostream>
|
||||
#include <thread>
|
||||
|
||||
static const int num_threads = 10;
|
||||
|
||||
//This function will be called from a thread
|
||||
static const int num_threads = 8;
|
||||
|
||||
void call_from_thread(int tid) {
|
||||
std::cout << "Launched by thread " << tid << std::endl;
|
||||
double x = 1.0;
|
||||
for(int i = 0; i < 2E9; i++) {
|
||||
x /= 2;
|
||||
}
|
||||
}
|
||||
|
||||
int main() {
|
||||
std::thread t[num_threads];
|
||||
|
||||
//Launch a group of threads
|
||||
for (int i = 0; i < num_threads; ++i) {
|
||||
t[i] = std::thread(call_from_thread, i);
|
||||
}
|
||||
|
||||
std::cout << "Launched from the main\n";
|
||||
|
||||
//Join the threads with the main thread
|
||||
for (int i = 0; i < num_threads; ++i) {
|
||||
t[i].join();
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user