Difference Between Goroutine and Thread in Golang



Goroutine

Goroutine is method/function which can be executed independently along with other goroutines. Every concurrent activity in Go language is generally terms as gorountine.

Thread

Thread is a lightweight process. It can be treated as a unit to execute a piece of code. Operating system manages the thread.

Following are the important differences between Goroutine and Thread.

Sr. No. Key Goroutine Thread
1 Managed By Goroutine methods are managed by golang runtime. Thread are managed by operating systems.
2 Hardware dependency Goroutine are independent to hardware. Thread are dependent on hardware.
3 Communication Medium Goroutines uses channels as communication medium. Thread have no easy communication medium.
4 Latency Goroutines can commuicate with other routines with low latency. Thread as have no communication medium, communicate with other thread with high latency.
5 ID Goroutine does not have any thread local storage and no unique id. Thread have thread local storage and have unique id.
6 Scheduling Goroutines are co-operatively scheduled. Threads are preemptively scheduled.
7 Startup Goroutines have faster startup time. Threads have slower startup time.
8 Stack Goroutines have growable segmented stacks. Threads do not have growable segmented stacks.
Updated on: 2019-11-28T10:43:37+05:30

872 Views

Kickstart Your Career

Get certified by completing the course

Get Started