README.md in threads-0.1.0 vs README.md in threads-0.2.0

- old
+ new

@@ -1,25 +1,39 @@ [![DevOps By Rultor.com](http://www.rultor.com/b/yegor256/threads)](http://www.rultor.com/p/yegor256/threads) [![We recommend RubyMine](http://www.elegantobjects.org/rubymine.svg)](https://www.jetbrains.com/ruby/) [![Build Status](https://travis-ci.org/yegor256/threads.svg)](https://travis-ci.org/yegor256/threads) [![Gem Version](https://badge.fury.io/rb/threads.svg)](http://badge.fury.io/rb/threads) -[![Maintainability](https://api.codeclimate.com/v1/badges/0296baf81e86b90fba70/maintainability)](https://codeclimate.com/github/yegor256/threads/maintainability) +[![Maintainability](https://api.codeclimate.com/v1/badges/24fc3acdf781d98b8749/maintainability)](https://codeclimate.com/github/yegor256/threads/maintainability) -Ruby test threads. +When you need to test your code for thread safety, what do you do? +That's right, you just don't test it. +That's [wrong](https://www.yegor256.com/2018/03/27/how-to-test-thread-safety.html)! +This simple gem helps you test your code with just two additional lines of code. First, install it: ```bash $ gem install threads ``` -Then, use it like this, to print a threads: +Then, use it like this, to test your code from multiple concurrently running threads: ```ruby require 'threads' -Threads.new.assert do |i| - puts "Hello from threads no.#{i}" +Threads.new(5).assert do |i| + puts "Hello from the thread no.#{i}" +end +``` + +You can put whatever you want into the block. The code will be executed from five threads, concurrently. +You can also make sure the code block runs only a specific number of times +specifying the argument in the `assert` method (it can't be smaller than the amount of threads): + +```ruby +require 'threads' +Threads.new(5).assert(20) do |i, r| + puts "Hello from the thread no.#{i}, repetition no.#{r}" end ``` That's it.