同步线程—Mutex
2013-12-08 21:05
323 查看
Mutex-lock & unlock
[Code:]
@num=200
@mutex=Mutex.new
def ticketNum(num)
@mutex.lock
Thread.pass
if (@num>=num)
@num-=num
puts "您已经成功购买#{num}张火车票"
else
puts "对不起,您购买的#{num}张火车票失败,已经没有了"
end
@mutex.unlock
end
ticketsuccess=Thread.new(199){|num| ticketNum(num)}
ticketsuccess1=Thread.new(2){|num| ticketNum(num)}
ticketsuccess.join
ticketsuccess1.join
[Result:]
您已经成功购买199张火车票
对不起,您购买的2张火车票失败,已经没有了
Mutex-synchronize:
[Code:]
@num=200
@mutex=Mutex.new
def ticketNum(num)
@mutex.synchronize
Thread.pass
if (@num>=num)
@num-=num
puts "您已经成功购买#{num}张火车票"
else
puts "对不起,您购买的#{num}张火车票失败,已经没有了"
end
end
end
ticketsuccess=Thread.new(199){|num| ticketNum(num)}
ticketsuccess1=Thread.new(2){|num| ticketNum(num)}
ticketsuccess.join
ticketsuccess1.join
[Result:]
您已经成功购买199张火车票
对不起,您购买的2张火车票失败,已经没有了
Mutex-try_lock:
mutex=Mutex.new
mutex.lock
if mutex.try_lock(值为false)
[Code:]
@num=200
@mutex=Mutex.new
def ticketNum(num)
@mutex.lock
Thread.pass
if (@num>=num)
@num-=num
puts "您已经成功购买#{num}张火车票"
else
puts "对不起,您购买的#{num}张火车票失败,已经没有了"
end
@mutex.unlock
end
ticketsuccess=Thread.new(199){|num| ticketNum(num)}
ticketsuccess1=Thread.new(2){|num| ticketNum(num)}
ticketsuccess.join
ticketsuccess1.join
[Result:]
您已经成功购买199张火车票
对不起,您购买的2张火车票失败,已经没有了
Mutex-synchronize:
[Code:]
@num=200
@mutex=Mutex.new
def ticketNum(num)
@mutex.synchronize
Thread.pass
if (@num>=num)
@num-=num
puts "您已经成功购买#{num}张火车票"
else
puts "对不起,您购买的#{num}张火车票失败,已经没有了"
end
end
end
ticketsuccess=Thread.new(199){|num| ticketNum(num)}
ticketsuccess1=Thread.new(2){|num| ticketNum(num)}
ticketsuccess.join
ticketsuccess1.join
[Result:]
您已经成功购买199张火车票
对不起,您购买的2张火车票失败,已经没有了
Mutex-try_lock:
mutex=Mutex.new
mutex.lock
if mutex.try_lock(值为false)
相关文章推荐
- 基于visual c++之windows核心编程代码分析(15)使用Mutex同步线程
- 多线程四 经典线程同步之互斥量Mutex
- Linux线程间同步 —— 互斥量(mutex)
- 多线程四 经典线程同步之互斥量Mutex
- 深入Phtread(二):线程的同步-Mutex
- 线程同步之mutex和event区别
- 深入Phtread(二):线程的同步-Mutex
- 线程、同步与锁——Mutex
- 线程之间的同步与互斥mutex
- ReaderWriterLock(定义支持单个写线程和多个读线程的锁),Mutex(一个同步基元,也可用于进程间同步。 )
- 线程间同步之 Mutex(mutual exclusion 互斥量)
- 线程、同步与锁——Mutex想说爱你不容易
- 深入Phtread(二):线程的同步-Mutex
- Linux的线程同步对象:互斥量Mutex,读写锁,条件变量
- 深入Phtread(二):线程的同步-Mutex
- ReaderWriterLock(定义支持单个写线程和多个读线程的锁),Mutex(一个同步基元,也可用于进程间同步。 )
- 线程、同步与锁——Mutex想说爱你不容易
- 深入Phtread(二):线程的同步-Mutex
- Linux的线程同步对象:互斥量Mutex,读写锁,条件变量
- 线程间同步之 Mutex(mutual exclusion 互斥量)