单项选择题

产生死锁的根本原因是____。【北京理工大学2003年】

A.资源共享
B.并发执行的进程太多
C.进程推进顺序非法
D.以上3个因素全是