flowchart TB
philosopher_0("philosopher_0
๐ค Sent: 55
๐ฅ Recv: 40")
philosopher_4("philosopher_4
๐ค Sent: 36
๐ฅ Recv: 31")
fork_0("fork_0
๐ค Sent: 17
๐ฅ Recv: 28")
fork_4("fork_4
๐ค Sent: 24
๐ฅ Recv: 34")
philosopher_1("philosopher_1
๐ค Sent: 46
๐ฅ Recv: 36")
philosopher_2("philosopher_2
๐ค Sent: 45
๐ฅ Recv: 35")
philosopher_3("philosopher_3
๐ค Sent: 45
๐ฅ Recv: 35")
fork_1("fork_1
๐ค Sent: 16
๐ฅ Recv: 26")
fork_2("fork_2
๐ค Sent: 24
๐ฅ Recv: 34")
fork_3("fork_3
๐ค Sent: 11
๐ฅ Recv: 20")
fork_0 -->|10ร #123;:fork_granted, :fork_0#125;
18.3/s| philosopher_0
fork_0 -->|3ร #123;:fork_denied, :fork_0#125;
6.7/s| philosopher_4
fork_1 -->|5ร #123;:fork_denied, :fork_1#125;
16.7/s| philosopher_0
fork_1 -->|#123;:fork_granted, :fork_1#125;
8.3/s| philosopher_1
fork_2 -->|6ร #123;:fork_denied, :fork_2#125;
18.3/s| philosopher_1
fork_2 -->|6ร #123;:fork_denied, :fork_2#125;
18.3/s| philosopher_2
fork_3 -->|#123;:fork_granted, :fork_3#125;
8.3/s| philosopher_2
fork_3 -->|4ร #123;:fork_granted, :fork_3#125;
10/s| philosopher_3
fork_4 -->|6ร #123;:fork_granted, :fork_4#125;
18.3/s| philosopher_3
fork_4 -->|7ร #123;:fork_denied, :fork_4#125;
18.3/s| philosopher_4
philosopher_0 -->|11ร #123;:request_fork, :philosopher_0#125;
35/s| fork_0
philosopher_0 -->|10ร #123;:request_fork, :philosopher_0#125;
25/s| fork_1
philosopher_0 -->|#123;:start_hungry, :fork_0, :fork_1#125;
every 50ms| philosopher_0
philosopher_1 -->|5ร #123;:release_fork, :philosopher_1#125;
16.7/s| fork_1
philosopher_1 -->|11ร #123;:request_fork, :philosopher_1#125;
26.7/s| fork_2
philosopher_1 -->|#123;:start_hungry, :fork_2, :fork_1#125;
every 50ms| philosopher_1
philosopher_2 -->|11ร #123;:request_fork, :philosopher_2#125;
26.7/s| fork_2
philosopher_2 -->|5ร #123;:release_fork, :philosopher_2#125;
16.7/s| fork_3
philosopher_2 -->|#123;:start_hungry, :fork_2, :fork_3#125;
every 50ms| philosopher_2
philosopher_3 -->|6ร #123;:request_fork, :philosopher_3#125;
16.7/s| fork_3
philosopher_3 -->|11ร #123;:request_fork, :philosopher_3#125;
28.3/s| fork_4
philosopher_3 -->|#123;:start_hungry, :fork_4, :fork_3#125;
every 50ms| philosopher_3
philosopher_4 -->|4ร #123;:request_fork, :philosopher_4#125;
8.3/s| fork_0
philosopher_4 -->|11ร #123;:request_fork, :philosopher_4#125;
25/s| fork_4
philosopher_4 -->|#123;:start_hungry, :fork_4, :fork_0#125;
every 50ms| philosopher_4
style philosopher_0 fill:#fff3e0,stroke:#f57c00,stroke-width:3px
style philosopher_4 fill:#fff3e0,stroke:#f57c00,stroke-width:3px
style fork_0 fill:#e8f5e9,stroke:#388e3c
style fork_4 fill:#fff3e0,stroke:#f57c00,stroke-width:3px
style philosopher_1 fill:#fff3e0,stroke:#f57c00,stroke-width:3px
style philosopher_2 fill:#fff3e0,stroke:#f57c00,stroke-width:3px
style philosopher_3 fill:#fff3e0,stroke:#f57c00,stroke-width:3px
style fork_1 fill:#e8f5e9,stroke:#388e3c
style fork_2 fill:#fff3e0,stroke:#f57c00,stroke-width:3px
style fork_3 fill:#e8f5e9,stroke:#388e3c