mdsk.net
当前位置:首页 >> linux上,C语言中,主进程怎么杀死子线程 >>

linux上,C语言中,主进程怎么杀死子线程

用pthread.h中声明的函数可实现线程管理。 创建线程是pthread_create()函数; 撤销线程是pthread_cancel()函数,这个应该符合你的要求。

你是程序中调用kill函数,还是在命令行调用kill命令? int kill(pid_t pid, int sig); 函数有两个参数,一个是进程号,一个是信号 如果你输入的进程号是正确的,而进程还在,则信号有可能被该进程忽略了,不知道你发送的信号是几号? 只有SIGKIL...

你用什么函数启动的线程?

线程 可以用pthread_kill函数 传递信号SIGSTOP挂起 传递SIGCONT 恢复 进程 调用系统的stop挂起 或者用kill -stop 挂起 类似的 用SIGCONT 恢复。

1、fork 是用来创建子进程的, 而不是线程( 线程创建需要用到 pthread_create )。需要根据 fork() 的返回值来判断下面的代码是在父进程(返回pid>0)中还是子进程(返回0)中. 像上面的代码中 if 中的代码被在子进程中执行, else 中的代码在父进程中...

我觉得这个问题你应该从另外一个方向去考虑,既然B不需要A的资源,那么就不要在fork之前打开这些资源。 你如,你原来的代码是 fd = open(...); ... ... fork(); ... ... 你现在就应该改成 fork(); if (parent) { ...... fd = open(); ..... } el...

子函数只是在主函数里面顺序进行的,但是线程是并发进行的。当两个线程需要使用同一个资源时还需要设置互斥信号灯,防止两个线程对资源的访问发生冲突。 以上是一个方面,另一个方面是多线程比较结合实际。不知道你们做过火车的购票仿真没有,当...

结束当前进程或程序的话,只需要调用exit函数。 如果需要结束非当前进程的其它进程则一般需要借助操作系统提供的系统函数。 如在windows操作系统中可以调用TerminateProcess来结束某进程。 在linux操作系统中可以调用Kill来结束某进程

ps 看一下名字对应的PID号。你也可以先了解一下ps命令的输出格式。 使用killall+进程名似乎也是可以的。

线程自身用的内存,是在栈上系统自动分配,或自己配置(操作系统提供了可编程配置参数,但也是操作系统在管理)。线程运行完成后返回栈内存操作系统会自动回收。需要注意的是,如果是在线程运行中中,使用malloc或操作系统的内存分配函数分配的...

网站首页 | 网站地图
All rights reserved Powered by www.mdsk.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com