linux C程序中,线程1向一块内存写数据,线程2从同一块内存读数据,如果两个动作同时进行,会线程冲突吗?

在linux C 多线程中,同时向某一个内存区块写入数据的时候,肯定要用到多线程的互斥锁。但本人目前遇到的情况跟刚刚的情况有点区别,本人遇到的两种情况:1、一个线程向一块内存中写数据,另一个线程从同一块内存中读数据,如果两个动作同时进行,这样会发生线程冲突,导致写失败,或读到的数据为乱码吗?;2、一个线程修改一块内存中的值,另一个线程对同一块内存中的值的大小进行判断,如果两个动作同时进行,这样会发生线程冲突,导致数值大小判断失败吗?
上面这两种情况,在JAVA中比较容易处理,但是在C语言中是怎样的结果呢? 需要加 互斥锁吗? 恳请赐教!