线程清理处理程序-示例

清理函数调用的情况：
1调用pthread_exit时
2相应取消请求时pthread_cancel; //该示例里面没有展现这种情况
3用非零execute参数调用pthread_cleanup_pop时。
如果线程是用return从它的企动力程中返回而终止的话，是不会调用清理处理程序的。
而且清理处理程序是按照与它们安装（入栈）时的顺序相反（从打印消息看出）。
线程清理处理函数-示例2

这里主要针对用pthread_exit()函数退出线程和用return返回终止线程，在最后是否调用清理处理函数的情况。

特殊的：如果execute参数和用pthread_exit函数同时返回这两个条件同时出现时，如果execute的参数为0，则不会调用清理处理函数，如果为1，则会调用清理处理函数

当pthread_exit在pthread_cleanup_pop函数之前就调用时，则不管该pop函数里面的参数是不是为0，都会调用清理处理函数。
另外，不管是在pop函数之前还是之后return，不管参数是什么，都不会调用清理处理函数。
当然，总结的这些都是从这两个pthread_clean.c和pthread_clean1.c文件里面来的。可以通过改变参数，来试一下