在Ruby中,可以使用線程和進(jìn)程來實(shí)現(xiàn)并發(fā)和并行編程。
1、線程:Ruby提供了Thread類來支持線程??梢酝ㄟ^創(chuàng)建線程對象并調(diào)用start方法來啟動線程,然后在線程中執(zhí)行需要并發(fā)執(zhí)行的代碼。例如:
```ruby
thread1 = Thread.new {
# 并發(fā)執(zhí)行的代碼
}
thread2 = Thread.new {
# 并發(fā)執(zhí)行的代碼
}
thread1.join
thread2.join
```
2、進(jìn)程:Ruby提供了Process類來支持進(jìn)程??梢酝ㄟ^調(diào)用fork方法來創(chuàng)建新進(jìn)程,并在子進(jìn)程中執(zhí)行需要并行執(zhí)行的代碼。例如:
```ruby
pid = Process.fork do
# 并行執(zhí)行的代碼
end
Process.wait(pid)
```
需要注意的是,線程是輕量級的,多個線程共享同一進(jìn)程的資源,而進(jìn)程是獨(dú)立的,每個進(jìn)程有自己的獨(dú)立內(nèi)存空間和資源。在并發(fā)編程中需要考慮線程安全性和資源競爭的問題。