2014-01-11 :-)
_ 午前
1030 起床 && 部屋掃除
_ [ruby][wait][notify][notify_all][マルチスレッド][スレッド]ruby で wait, notify_all とか
Java には wait, notify, notify_all があるんだが ruby にはない。C で云う signal と kill みたいなものぽい?(夕立)
ruby thread programming , ruby equivalent of java wait/notify/notifyAll - Stack Overflow
ふむ
多重に Mutex すると刺さるらしいので Monitor に変更してみたけどその辺よく分かってない( class Monitor )
# coding: utf-8
require 'thread'
require 'monitor'
class Object
def wait
@waiting_threads = [] unless @waiting_threads
@monitor_mutex = Monitor.new unless @monitor_mutex
@monitor_mutex.synchronize {
@waiting_threads << Thread.current
}
Thread.stop
end
def notify
if @monitor_mutex and @waiting_threads
@monitor_mutex.synchronize {
@waiting_threads.delete_at(0).run unless @waiting_threads.empty?
}
end
end
def notify_all
if @monitor_mutex and @waiting_threads
@monitor_mutex.synchronize {
@waiting_threads.each {|thread| thread.run}
@waiting_threads = []
}
end
end
end
if __FILE__ == $0
th1 = Thread.new do
puts "thread1 wait..."
wait()
puts "thread1 wake up"
end
th2 = Thread.new do
puts "thread2 signal..."
3.downto(0) {|i|
puts "...#{i}"
sleep(1)
}
puts "fire!"
notify_all()
end
th1.join
th2.join
end
% ruby wait.rb thread1 wait... thread2 signal... ...3 ...2 ...1 ...0 fire! thread1 wake up
_ プログラマには集中しやすい仕事場を与えるべき
といっていたのはトム・デマルコだったかどうだったか。個室を与えろだとか、電話対応しなくていいとか、雑務は自分の仕事じゃない()とかそういうの。トム・デマルコに限らずいろんなひとが言ってたような気がする。要するに「コードを書くことに専念したいから他人と関わりたくない」ということだる。「集中できる環境が必要である!」俺にもそう思っていた時期がありました。学生のころ。
SIer ぽいひとがこのようなことを言ってるのをたまに見かけるんだけど、他人と関わらないで済む仕事とはどういうものがあるのか知りたい。SIer ぽいことやってるなら、プロジェクトを指揮ったり、営業と打ち合わせしたり、客先に出向いたり、資材を調達したり、検査部門に依頼をしたり、導入時に現場に寝泊まりなどするはずだから、個室で引きこもって仕事するなんてできないと思うんだけど。自宅から遠隔で仕事するひとであっても割り込みがあったり障害対応したりするよなあ。
華やかそうなオフィスであっても個室なんて見当たらないし。他人と関わらない仕事とはどういうひとたちなんだろうか。
- 941::blog 行ってきた系
- Evernote: Office Tour - Business Insider
- Inside Mozilla's Amazing Office Space In San Francisco - Business Insider
- Facebook New York Office Tour - Business Insider
- Foursquare Slideshow - Business Insider
4822281108




関わるほうが楽しい派(´・ω・`)
こじらせると、見ざる言わざる聞かざるになってまう