multithreading - Problems with Immutable Data in Functional Programming -


i new functional programming. understood functional programming writing code using pure functions , without changing value of data.

instead of changing value of variables create new variables in functional programming when need update variable.

suppose have variable x represents total number of http requests made program. if have 2 threads want threads increment x whenever http request made thread. if both threads make different copy of variable x how can synchronize value of x. example: if thread 1 make 10 http requests , thread 2 made 11 http requests print 10 , 11 respectively how print 21.

i address haskell part. mvar 1 of communication mechanism threads. 1 of example taken simon marlow's book (the program self-explanatory):

main =   m <- newemptymvar   forkio $ putmvar m 'x'; putmvar m 'y'   r <- takemvar m   print r   r <- takemvar m   print r 

the output above program be:

'x' 'y' 

you can see in above example how mvar value in variable m shared between threads. can learn more these techniques in this book.


Comments

Popular posts from this blog

c++ - llvm function pass ReplaceInstWithInst malloc -

Cross-Compiling Linux Kernel for Raspberry Pi - ${CCPREFIX}gcc -v does not work -

java.lang.NoClassDefFoundError When Creating New Android Project -