分类: LINUX
2012-07-04 09:52:45
由于多线程非常适合多任务的项目使用,所以自己测试练习下。
1)多线程共享的变量是全局变量,而不是main里定义的变量,在多线程中,main是控制线程,其他线程里定义的变量是和他隔开的,只是都共享全局变量,所以在使用全局变量时,需要使用pthread_mutex等同步工具。
2)多线程之间是共享同一个signal处理函数的,所以一般只需要在一个线程里定义signal函数,如果多个线程里都定义了不同的signal,一般以最后一个signal为准,但我测试后发现如果main里signal在线程里的signal之后,则仍然是线程里定义的signal为准,感觉线程里signal调用要高于main里的signal调用,所以使用时要注意测试。
3)在多线程里使用fifo,当读fifo线程退出时,写fifo没有收到SIGFIFO信号,但写虽然继续但实际上没有真正写进去。