Haskell'de IO gerçekleştiren iki iş parçacığım var. (Sadece yazdırırlar). aşağıdaki gibi bir şey: Aşağıdaki gibiHaskell'in atomik IO gerçekleştirmesini sağlayabilir miyim?
thread1 :: IO()
thread1 = putStrLn "One"
thread2 :: IO()
thread2 = putStrLn "Two"
Şu anda alıyorum sonuçları:
OnTwoe
OTnweo
Nasıl her iş parçacığı atomik onun IO tamamlar emin olabiliriz?
Bir alıştırma olarak: kaynağa erişim siparişi vermek için bunu işlem belleğini kullanarak yazmayı deneyin. –
Bunu bir şans vereceğim! ayrıca değiştirdim: withMVar lock $ (\ _ -> putStrLn "bar") – Toymakerii
Bu tasarımı kullanmadım ama sonunda bahsettiğiniz alternatif tasarım birkaç projede benim için gayet iyi çalıştı. –