2012年10月11日

Linux 多线程环境下 进程线程终止函数小结

摘要: pthread_kill:pthread_kill与kill有区别,是向线程发送signal。,大部分signal的默认动作是终止进程的运行,所以,我们才要用signal()去抓信号并加上处理函数。int pthread_kill(pthread_t thread, int sig);向指定ID的线程发送sig信号,如果线程代码内不做处理,则按照信号默认的行为影响整个进程,也就是说,如果你给一个线程发送了SIGQUIT,但线程却没有实现signal处理函数,则整个进程退出。pthread_kill(threadid, SIGKILL)杀死整个进程。 如果要获得正确的行为,就需要在线程内实现si 阅读全文

posted @ 2012-10-11 19:13 as_ 阅读(23686) 评论(0) 推荐(0) 编辑

Linux 多线程环境下 线程joinable状态和unjoinable状态

摘要: 这里主要讨论这两种状态下,线程终止以及资源释放的问题linux线程中,pthread有两种状态joinable状态和unjoinable状态。joinable状态下,当线程函数自己返回退出时或pthread_exit时都不会释放线程所占用堆栈和线程描述符。只有当你调用了pthread_join之后这些资源才会被释放,这是需要main函数或者其他线程去调用pthread_join函数。unjoinable状态的线程,这些资源在线程函数退出时或pthread_exit时自动会被释放。设置unjoinable状态设置有两种办法 一是可以在pthread_create时指定,二是线程创建后在线程中pt 阅读全文

posted @ 2012-10-11 18:02 as_ 阅读(3719) 评论(0) 推荐(0) 编辑

值 引用 指针概念区别汇总

摘要: 传值和传引用的概念传值(pass by value):即形参接收实参传递过来的值,如果是自定义类型,要调用拷贝构造函数。函数处理的是形参的值。传引用(pass by reference):引用表示与原对象完全相同,是同一个对象。若函数的形参是引用,则实参与形参间不存在参数传递,且函数内对形参的修改就是修改实参,因为它们是引用关系,是同一个对象。语言应用C语言中,传递的参数类型只有1个:传值,包括传递普通数值和指针。C++中,传递的参数类型有2个:传值、传引用java中,传递的类型只有1个:传值。java中传的值包括:基本数据类型和对象,其中对象当做指针看待三种语言的处理方法相同: 不管传递的是 阅读全文

posted @ 2012-10-11 13:52 as_ 阅读(650) 评论(0) 推荐(0) 编辑

导航