最近学习 Java
的时候了解到在 Java
中 synchronized
关键字可以保证代码块的串行执行。
在 ruby
开发中往往使用第三方来保证,比如使用数据库或文件系统。其实 ruby
也有类似的方式来保证代码块的串行执行,它就是 Mutex
的 synchronize
。
require 'thread'
semaphore = Mutex.new
a = Thread.new {
semaphore.synchronize {
# access shared resource
}
}
b = Thread.new {
semaphore.synchronize {
# access shared resource
}
}