1.线程参数应在堆 或全局变量区存放 。线程启动并行运算,有可能启动函数已经退出,但线程还未启动。如果参数是栈变量,则释放。
2.线程不能开得太快。否则都可能出现死线程(windows linux 都有这个禁忌),即这个线程系统已经认为存在,但没有获得时间片执行。 建议线程的启动间隔 > 250ms.
3.线程永远不能在外部被kill,线程占有资源,内存,加锁未被释放。而且在windows线程强制杀死是异步的,这有可能线程并未真是被杀死。 导致种种问题。原则上设定一定条件,让线程自行退出。
4.线程总数有限制的,一般linux 300 ,windows 可能稍多。 如果线程较多,考虑线程池。