1
0
mirror of https://github.com/google/comprehensive-rust.git synced 2025-04-03 01:56:12 +02:00

Add notes to threads.md

From the discussion in #63.
This commit is contained in:
Martin Geisler 2023-01-05 12:09:38 +01:00
parent 1162c554c0
commit e835ee6cdf

View File

@ -24,3 +24,22 @@ fn main() {
* Threads are all daemon threads, the main thread does not wait for them.
* Thread panics are independent of each other.
* Panics can carry a payload, which can be unpacked with `downcast_ref`.
<details>
Key points:
* Notice that the thread is stopped before it reaches 10 — the main thread is
not waiting.
* Use `let handle = thread::spawn(...)` and later `handle.join()` to wait for
the thread to finish.
* Trigger a panic in the thread, notice how this doesn't affect `main`.
* Use the `Result` return value from `handle.join()` to get access to the panic
payload. This is a good time to talk about [`Any`].
[`Any`]: https://doc.rust-lang.org/std/any/index.html
</details>