366 reputation
29
bio website
location Munich, Germany
age 28
visits member for 2 years
seen Nov 18 at 15:46

Programmer at Realmforge Studios mostly doing engine and graphics programming.


Sep
30
awarded  Explainer
Jan
24
awarded  Nice Answer
Dec
10
awarded  Yearling
Feb
18
awarded  Caucus
Feb
14
awarded  Necromancer
Dec
11
revised Is Intellisense faster in Visual Studio 2012 compared to Visual Studio 2010 for C++ projects?
added 979 characters in body
Dec
10
awarded  Autobiographer
Dec
10
awarded  Analytical
Dec
10
awarded  Revival
Dec
10
revised Is Intellisense faster in Visual Studio 2012 compared to Visual Studio 2010 for C++ projects?
added 230 characters in body
Dec
10
answered Is Intellisense faster in Visual Studio 2012 compared to Visual Studio 2010 for C++ projects?
Dec
10
revised How to create a Request Specific Thread Safe Static int Counter?
added 647 characters in body
Dec
10
revised How to create a Request Specific Thread Safe Static int Counter?
added 165 characters in body
Dec
10
answered How to create a Request Specific Thread Safe Static int Counter?
Dec
10
comment Difference between Atomic Operation and Thread Safety?
x=5 is atomic in c#. But immediately after this operation it could be overwritten. x=x+1 is executed by 1. loading x into register 2. increment x in register 3. store x into memory. If a second thread does the same thing at the same time, both will load the same value, increment it and store it resulting in x only getting incremented once instead of twice. InterlockedIncrement either uses a special processor instruction to execute a atomic increment or ensures this by using a locking mechanism, eg CAS, to ensure that while the new value is not written no other thread may read the old value.
Dec
10
comment Difference between Atomic Operation and Thread Safety?
@user960567 the InterlockedIncrement allows incrementing an integer in memory, doing this without a special construct would not work. In C# setting eg x=x+1 is not atomic, only the read and write are which would lead to an increment not getting executed when two threads do it at the same time. Another interesting construct is compare and swap (CAS) which allows you to sync multiple threads because they can detect when another thread as changed the value since it was last read by the current thread and react to it.
Dec
10
awarded  Supporter
Dec
10
awarded  Editor
Dec
10
revised Difference between Atomic Operation and Thread Safety?
Clearer question related answer.
Dec
10
comment Difference between Atomic Operation and Thread Safety?
And yes, writing one of these atomic data types in c# is thread safe, but that does not make the function you use them in thread safe. It only ensures that the single write is correctly executed even if a second thread accesses it "at the same time". Never the less, the next read from the current thread is not ensured to get the value previously written as a different thread might have written to it, only that the value read is valid.