Merge: nitrpg: minor enhancements
[nit.git] / lib / pthreads / README.md
1 # POSIX Threads support
2
3 The threads can be manipulated and synchronized using the classes `Thread`,
4 `Mutex` and `Barrier`.
5
6 This group also provides two optional modules with thread-safe collections:
7
8 * `redef_collections` redefines existing collection to make them thread-safe.
9   This incures a small overhead in all usage of the redefined collections.
10 * `concurrent_collections` intro new thread-safe collections.
11
12 Theses services are implemented using the POSIX threads.
13
14 You can also use the `is threaded` annotation on methods, which makes them run on their own thread.
15 Methods with return value or self calls are not supported.
16
17 ## Known limitations:
18
19 * Most services from the Nit library are not thread-safe. You must manage
20   your own mutex to avoid conflicts on shared data.
21 * FFI's global references are not thread-safe.
22
23 ## For more information:
24
25 * See: `man pthreads`
26 * See: `examples/concurrent_array_and_barrier.nit`