As I understand it, Go’s mutex lock will spin for a while (good if everyone 
using the mutex holds it for only very short periods), but will back off to a 
less compute intensive method after a while.  This avoids tying up a CPU at the 
cost of some latency in seeing the other guy’s unlock.

 

John

    John Souvestre - New Orleans LA

 

From: golang-nuts@googlegroups.com [mailto:golang-nuts@googlegroups.com] On 
Behalf Of sphilip...@gmail.com
Sent: 2016 October 04, Tue 04:10
To: golang-nuts
Subject: [go-nuts] Re: Go locking and channels much slower than Java 
equivalent, program spends most of time in sync.(*Mutex).Lock() and 
sync.(*Mutex).Unlock()

 

Try spinlocks instead of mutexes: 
https://github.com/pi/goal/blob/master/gut/spinlock.go

-- 
You received this message because you are subscribed to the Google Groups 
"golang-nuts" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to golang-nuts+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

-- 
You received this message because you are subscribed to the Google Groups 
"golang-nuts" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to golang-nuts+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to