b2科目四模拟试题多少题驾考考爆了怎么补救
b2科目四模拟试题多少题 驾考考爆了怎么补救

Linux多线程环境中进程线程终止功能的概述

电脑杂谈  发布时间:2020-04-14 01:34:01  来源:网络整理

pthread kill 返回值_javascript函数返回多个值_jni pthread kill

pthread_kill:

pthread_kill和kill之间的区别是向线程发送信号. 大多数信号的默认操作是终止进程的运行,因此我们必须使用signal()捕获信号并添加处理功能.

int pthread_kill(pthread_t thread, int sig);

Sig信号发送到具有指定ID的线程. 如果程代码中未执行任何处理pthread kill 返回值,则整个过程将根据信号的默认行为受到影响,即,如果将SIGQUIT发送到线程,但该线程未实现信号处理功能,则整个过程将退出.

pthread_kill(线程ID,SIGKILL)杀死整个过程. 如果要获得正确的行为,则需要程中实现信号(SIGKILL,sig_handler). 因此,如果int sig的参数不为0,则必须清楚该怎么做,并且必须实现线程的信号处理功能,否则会影响整个过程.

jni pthread kill_pthread kill 返回值_javascript函数返回多个值

如果int sig为0,则这是一个保留信号,其目的是确定线程是否仍然存在. pthread_kill的返回值: 成功: 0个线程不存在: ESRCH信号无效: EINVAL

代码:

int kill_rc = pthread_kill(thread_id,0);
if(kill_rc == ESRCH) 
    printf("the specified thread did not exists or already quit\n"); 
else if(kill_rc == EINVAL) 
    printf("signal is invalid\n"); 
else 
    printf("the specified thread is alive\n");
 

pthread_cancel

原型:

pthread kill 返回值_javascript函数返回多个值_jni pthread kill

int pthread_cancel(pthread_t thread);

向线程发送取消执行的请求. 如果成功,则返回0,否则为非零值. 成功的传输并不意味着线程将终止. 成功返回零,错误返回非零错误代码ESRCH: 找不到具有指定线程ID的线程.

中止和退出的比较

退出将做一些释放工作: 释放所有静态全局对象,缓存pthread kill 返回值,关闭所有I / O通道,然后终止程序. 如果通过atexit注册了功能,则注册的功能也将以与atexit相反的顺序被调用. 但是,如果atexit函数引发异常,它将直接调用终止.

中止: 不执行任何清理工作就立即终止程序.

jni pthread kill_pthread kill 返回值_javascript函数返回多个值

以下是基本的线程功能:

--------------------------------------------------- -----------------

POSIX功能说明

--------------------------------------------------- -----------------

pthread_create创建线程

jni pthread kill_javascript函数返回多个值_pthread kill 返回值

pthread_self找出自己的线程ID

pthread_equal测试两个线程ID是否相等

pthread_detach设置线程以释放资源

pthread_join等待线程

pthread_cancel终止另一个线程

pthread_exit退出线程而不退出进程

pthread_kill向线程发送信号

--------------------------------------------------- ----------------

以上是编辑器为您提供的Linux多线程环境. 总结了进程线程终止功能. 希望您能支持脚本首页〜


本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-174794-1.html

    相关阅读
      发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

      热点图片
      拼命载入中...