# work0701.rb
require 'thread'
memory = "10100101011010"
cs = Mutex::new
showflag = true
Thread::fork{
loop{
cs.synchronize{
if showflag == false
puts memory
showflag = true
end
}
}
}
Thread::fork{
loop{
sleep(0.5)
cs.synchronize{
if showflag == true
if memory.gsub!(/001/,"000")
showflag = false
end
end
}
}
}
Thread::fork{
loop{
sleep(0.5)
cs.synchronize{
if showflag == true
if memory.gsub!(/010/,"000")
showflag = false
end
end
}
}
}
Thread::fork{
loop{
sleep(0.5)
cs.synchronize{
if showflag == true
if memory.gsub!(/100/,"000")
showflag = false
end
end
}
}
}
Thread::fork{
loop{
sleep(0.5)
cs.synchronize{
if showflag == true
if memory.gsub!(/110/,"111")
showflag = false
end
end
}
}
}
Thread::fork{
loop{
sleep(0.5)
cs.synchronize{
if showflag == true
if memory.gsub!(/101/,"111")
showflag = false
end
end
}
}
}
Thread::fork{
loop{
sleep(0.5)
cs.synchronize{
if showflag == true
if memory.gsub!(/011/,"111")
showflag = false
end
end
}
}
}
loop{
}