将单线程代码多线程化遇到问题

1:对线程而言是全局变量,并非对整个程序也是全局的;
解决方案:
a:全面禁用全局变量;
b:为每一个线程赋予私有全局变量
2:不少库过程是不可重入的
解决方案:为每一个过程提供包装器,改包装器设置一个二进制位从标志某个库处于使用中。在调用没有完成以前任何使用该库的线程都会被阻塞。(该方案会极大下降系统潜在的并行性)
3:信号有的是线程专用的,可是有的不是。
4:堆栈管理,当一个进程堆栈溢出时,内核只是自动为改进程提供更多的堆栈,当一个进程为多个进程时,必须有多个堆栈。内核若是不了解全部的堆栈,就不能使其自动增加,直到堆栈出错。web