进程是“死”的,只是一些资源的集合,真正的程序执行都是线程来完成的。在程序启动时,操作系统就帮助用户创建一个主线程。
每个线程都有自己的堆栈。
DLL数据库模式定义语言中没有独立的堆栈,这个问题不好回答,或者说这个问题本身是否有问题。因为DLL中的代码是被某些线程所执行,只有线程拥有堆栈,如果DLL中的代码是EXE中的线程所调用,那么这个时候是不是说这个DLL没有自己独立的堆栈?如果DLL中的代码是由DLL自己创建的线程所执行,那么是不是说DLL有独立的堆栈?
以上介绍的是堆栈。因为对于堆来说,每个DLL都有自己的堆,所以如果是中DLL中动态分配内存,最好从DLL中删除。如果你在DLL中分配内存,然后在EXE中,或者另外一个DLL中删除,很有可能导致程序崩溃。
每个线程都有自己的堆栈。
DLL数据库模式定义语言中没有独立的堆栈,这个问题不好回答,或者说这个问题本身是否有问题。因为DLL中的代码是被某些线程所执行,只有线程拥有堆栈,如果DLL中的代码是EXE中的线程所调用,那么这个时候是不是说这个DLL没有自己独立的堆栈?如果DLL中的代码是由DLL自己创建的线程所执行,那么是不是说DLL有独立的堆栈?
以上介绍的是堆栈。因为对于堆来说,每个DLL都有自己的堆,所以如果是中DLL中动态分配内存,最好从DLL中删除。如果你在DLL中分配内存,然后在EXE中,或者另外一个DLL中删除,很有可能导致程序崩溃。