# Canister threading model

**URL:** https://forum.dfinity.org/t/canister-threading-model/39150
**Category:** Developers
**Created:** [December 20, 2024, 7:53am UTC](https://forum.dfinity.org/t/canister-threading-model/39150 "2024-12-20T07:53:10Z")
**Posts on this page:** 1
**Page:** 1

<div class="post-metadata">

### Author: ![ghostwhoowalks](https://avatars.discourse-cdn.com/v4/letter/g/b487fb/32.png) [@ghostwhoowalks](https://forum.dfinity.org/u/ghostwhoowalks)
#### Post date: [December 20, 2024, 7:53am UTC](https://forum.dfinity.org/t/canister-threading-model/39150/1 "2024-12-20T07:53:10Z")

</div>

All canisters method invocations are in essence processed sequentially correct? If so, if I invoke methods m1, m2, m3 on canister A then the order of the execution is m1, m2 and then m3. Does this mean that if m2 makes an XNET call it will be some async call on which one awaits. Does this mean that m3 cannot be executed before that await completes correct?

I am basing part of this question after reading

> **[Async code and inter-canister calls | Internet Computer](https://internetcomputer.org/docs/current/developer-docs/smart-contracts/advanced-features/async-code)**
>
> In programming, the async/await pattern is a syntactic feature of many programming languages that allows an asynchronous, non-blocking function to be structured in a similar way to an ordinary synchronous function.
