采用多线程模式可以采用同步编程,而非异步编程,可以简化编程;多个进程间可以很方便的共享数据;可以通过pthread_self获得自身的线程ID。线程ID只在进程内部唯一。新创建线程不能保证那个线程先运行,新县城可以访问进程的地址空间,继承线程的浮点环境和信号屏蔽字。如果任意一个线程调用:exit,_Exit,_exit,进程都会终止。线程终止方式:1)从启动函数中返回,返回值就是线程的退出码。2)可以被其他线程取消。3)线程调用pthread_exit。pthread_exit的入参就是现场的退出码。如果一个线程退出,其他线程就可以使用函数pthread_join来访问到其他线程的退出码。调用这个函数的线程将会一直阻塞,直到指定的线程调用ptread_exit,从主函数中退出,或者被取消。如果被其他的线程取消,rval_ptr指定的内存单元就被设置为PTREAD_CANCELED。线程的入口函数不要返回局部变量的地址(内存可能已经被回收),可以返回常量的地址(这里错了,应该是返回常量,数字常量地址如何获取?)。(*void)1.或者全局变量的地址。如果是全局变量的话,在多个线程的时候要注意不要有冲突。ptread_create和ptread_exit无类型指针参数能传递的数字不止一个,可以是更复杂的结构体,但是这个内存必须是调用者完成调用之后必须是有效的。否则会访问非法内存。错误的
...
继续阅读
(52)