在线程中执行malloc

Lio*_*ior 4 c multithreading posix pthreads

我在c中编写了一个使用POSIX pthreads的应用程序.在每个线程中都有一个功能malloc.所以我的问题是:

1)我保证每个线程分配一个不同的,非重叠的内存块吗?

2)是否可以从主线程(创建分配内存的其他线程)访问分配的内存?

我在Windows上使用gcc编译器,但我想知道Windows和Linux的答案.

谢谢

fuz*_*fuz 6

  1. POSIX保证malloc()线程安全的,因为它可以在多个线程同时使用.通常,malloc()为此目的采用内部锁定.
  2. POSIX保证进程具有单个平面地址空间.一个进程的多个线程共享一个MMU配置,并且可以访问相同的地址空间.在一个线程中分配的对象也可以从其他线程访问.