diff --git a/docs/features/threading.md b/docs/features/threading.md index 49afee46..a51857de 100644 --- a/docs/features/threading.md +++ b/docs/features/threading.md @@ -139,6 +139,15 @@ Frame: 4 World Generation Complete 3 10000 10 ``` -`ComputeThread` used `pickle` module to serialize the data between threads. -So parameters and return values must be supported by `pickle`. +`ComputeThread` uses `pickle` module to serialize the data between threads. +Parameters and return values must be supported by `pickle`. See [pickle](https://pocketpy.dev/modules/pickle/) for more details. + +Since `ComputeThread` is backed by a separate `VM` instance, +it does not share any state with the main thread +except for the parameters you pass to it. +Therefore, common python modules will be imported twice in each thread. + +If you want to identify which VM instance the module is running in, +you can call `pkpy.currentvm` or let your `ComputeThread` set some special flags +before importing these modules.