笨人王吧 关注:1贴子:50
  • 1回复贴,共1

异常&进程1

只看楼主收藏回复

异常分类:
1.中断(I/0输入导致)
2,。陷阱(人为设计使程序跳转,主要用于用户程序与内核之间提供接口,即系统调用),如syscall n,即请求系统服务n
3.故障,可能能修复,不能就调用abort程序停止用户程序
4.终止,不能修复的致命错误(一般是硬件错误),直接调用abort
进程控制:
getpid:返回进程ID
getppid:返回父进程ID
进程ID定义时类型:pid_t(不是int型)
fork()调用1次,返回2次:因为在fork()之后程序就成了两个进程了,每个进程中都会从fork()中返回啊。父进程中返回子进程的ID,子进程返回0,这样你通过判断返回值就知道是子进程还是父进程了。
状态:运行(执行或者等待执行),停止(挂起,视指令进入运行状态),终止
子进程停止却未回收:即僵死进程,仍占用资源。需父进程回收。若父进程未回收即停止:内核用init进程(pid为1)回收
kill -9 进程id:杀死该进程
kill -9 -进程id:杀死进程组id的组中的所有进程


IP属地:日本1楼2013-10-14 17:00回复
    线程:
    创建线程pthread_create(pthread_t *tid,pthread_attr_t *attr,func *f,void *arg),f为线程例程,其中tid包含线程ID,线程ID也可以pthread_self来获得自己ID(即函数pthread_t pthread_self(void);)。
    终止线程
    1.顶层的线程例程返回时隐形终止
    2.pthread_exit函数现行终止。主线程调用则先等其他所有对等线程终止,然后终止主线程与整个进程,返回thread_return(函数头void pthread_exit(void *thread_return);)。
    3.对等线程通过以当前线程ID作为参数调用pthread_cancle函数来终止线程(函数头int pthread_cancle(pthread_t tid);)
    回收线程资源
    pthread_join函数(函数头int pthread_join(pthread_t tid,void **thread_return);)
    该函数会阻塞直到该tid线程终止,将线程例程返回的(void*)指针赋值为thread_return指向的位置,然后回收已终止线程占用的所有存储器资源。


    IP属地:日本2楼2013-10-14 21:52
    回复