mirror of
				https://github.com/ruby/ruby.git
				synced 2022-11-09 12:17:21 -05:00 
			
		
		
		
	* properties.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@32060 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
		
							parent
							
								
									e3672626bf
								
							
						
					
					
						commit
						a72f033447
					
				
					 4 changed files with 70 additions and 70 deletions
				
			
		|  | @ -1,8 +1,8 @@ | |||
| i=0 | ||||
| while i<200_000 | ||||
|   i+=1 | ||||
| 
 | ||||
|   Class.new{ | ||||
|     def m; end | ||||
|   } | ||||
| end | ||||
| i=0 | ||||
| while i<200_000 | ||||
|   i+=1 | ||||
| 
 | ||||
|   Class.new{ | ||||
|     def m; end | ||||
|   } | ||||
| end | ||||
|  |  | |||
|  | @ -1,21 +1,21 @@ | |||
| # one thread, one mutex (no contention) | ||||
| 
 | ||||
| require 'thread' | ||||
| m = Mutex.new | ||||
| r = 0 | ||||
| max = 1000 | ||||
| lmax = max * max | ||||
| (1..1).map{ | ||||
|   Thread.new{ | ||||
|     i=0 | ||||
|     while i<lmax | ||||
|       i+=1 | ||||
|       m.synchronize{ | ||||
|         r += 1 | ||||
|       } | ||||
|     end | ||||
|   } | ||||
| }.each{|e| | ||||
|   e.join | ||||
| } | ||||
| raise r.to_s if r != max * max | ||||
| # one thread, one mutex (no contention) | ||||
| 
 | ||||
| require 'thread' | ||||
| m = Mutex.new | ||||
| r = 0 | ||||
| max = 1000 | ||||
| lmax = max * max | ||||
| (1..1).map{ | ||||
|   Thread.new{ | ||||
|     i=0 | ||||
|     while i<lmax | ||||
|       i+=1 | ||||
|       m.synchronize{ | ||||
|         r += 1 | ||||
|       } | ||||
|     end | ||||
|   } | ||||
| }.each{|e| | ||||
|   e.join | ||||
| } | ||||
| raise r.to_s if r != max * max | ||||
|  |  | |||
|  | @ -1,21 +1,21 @@ | |||
| # two threads, one mutex | ||||
| 
 | ||||
| require 'thread' | ||||
| m = Mutex.new | ||||
| r = 0 | ||||
| max = 1000 | ||||
| lmax = (max * max)/2 | ||||
| (1..2).map{ | ||||
|   Thread.new{ | ||||
|     i=0 | ||||
|     while i<lmax | ||||
|       i+=1 | ||||
|       m.synchronize{ | ||||
|         r += 1 | ||||
|       } | ||||
|     end | ||||
|   } | ||||
| }.each{|e| | ||||
|   e.join | ||||
| } | ||||
| raise r.to_s if r != max * max | ||||
| # two threads, one mutex | ||||
| 
 | ||||
| require 'thread' | ||||
| m = Mutex.new | ||||
| r = 0 | ||||
| max = 1000 | ||||
| lmax = (max * max)/2 | ||||
| (1..2).map{ | ||||
|   Thread.new{ | ||||
|     i=0 | ||||
|     while i<lmax | ||||
|       i+=1 | ||||
|       m.synchronize{ | ||||
|         r += 1 | ||||
|       } | ||||
|     end | ||||
|   } | ||||
| }.each{|e| | ||||
|   e.join | ||||
| } | ||||
| raise r.to_s if r != max * max | ||||
|  |  | |||
|  | @ -1,20 +1,20 @@ | |||
| # 1000 threads, one mutex | ||||
| 
 | ||||
| require 'thread' | ||||
| m = Mutex.new | ||||
| r = 0 | ||||
| max = 1000 | ||||
| (1..max).map{ | ||||
|   Thread.new{ | ||||
|     i=0 | ||||
|     while i<max | ||||
|       i+=1 | ||||
|       m.synchronize{ | ||||
|         r += 1 | ||||
|       } | ||||
|     end | ||||
|   } | ||||
| }.each{|e| | ||||
|   e.join | ||||
| } | ||||
| raise r.to_s if r != max * max | ||||
| # 1000 threads, one mutex | ||||
| 
 | ||||
| require 'thread' | ||||
| m = Mutex.new | ||||
| r = 0 | ||||
| max = 1000 | ||||
| (1..max).map{ | ||||
|   Thread.new{ | ||||
|     i=0 | ||||
|     while i<max | ||||
|       i+=1 | ||||
|       m.synchronize{ | ||||
|         r += 1 | ||||
|       } | ||||
|     end | ||||
|   } | ||||
| }.each{|e| | ||||
|   e.join | ||||
| } | ||||
| raise r.to_s if r != max * max | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 nobu
						nobu