根据Linux联机帮助页,只有以下函数是线程取消点:pthread_join,pthread_cond_wait,pthread_cond_timedwait,pthread_testcancel,sem_wait,sigwait . 在我的测试程序中,线程在usleep上退出 . 线程功能:

void* ThreadFunction(void* arg)

{

int n = 0;

pthread_setcancelstate(PTHREAD_CANCEL_ENABLE, NULL);

pthread_setcanceltype(PTHREAD_CANCEL_DEFERRED, NULL);

for(;;)

{

ostringstream s;

s << "Thread iteration " << n++;

PrintLine(s.str().c_str());

usleep(500000);

PrintLine("Check whether thread canceled...");

pthread_testcancel();

PrintLine("Thread is not canceled - continue");

}

pthread_exit(NULL);

}

当main函数执行pthread_cancel时,我希望ThreadFunction打印的最后一行是“检查线程是否被取消......” . 但是,它总是在退出之前打印“Thread iteration ...” . 这意味着,usleep是取消点 . 我认为这是正确的 - 任何睡眠功能都必须是可取消的 . 但这不是在文档中写的 .

如果usleep行被注释,最后一个线程输出行是“检查线程是否被取消...”,正如我所期望的那样 .

usleep java_usleep是否创建了线程取消点?相关推荐

  1. Linux_多线程(进程与线程的联系_pthread库_线程创建_线程等待_线程正常终止_线程取消_线程分离_pthread_t与LWP)

    文章目录 1.线程的定义,进程和线程的关系 2.Linux下的线程 Linux原生线程库(pthread库pthread.h) 线程的优点 线程的私有数据 3.线程控制 ①创建线程(pthread_c ...

  2. 线程分离属性,线程取消(状态,类型),线程取消例程函数

    目录 1.线程分离属性 2.线程取消(状态,类型) 3.线程取消例程函数 1.线程分离属性 默认情况下,线程启动后处于可接合状态(即未分离),此时的线程可以在退出时让其他线程接合以便释放资源,但若其他 ...

  3. pthread 立即停止线程_线程取消(pthread_cancel)

    基本概念 pthread_cancel调用并不等待线程终止,它只提出请求.线程在取消请求(pthread_cancel)发出后会继续运行, 直到到达某个取消点(CancellationPoint).取 ...

  4. 线程取消pthread_cancle、取消选项

    目录 pthread_cancel 杀死(取消)线程 取消选项 ① 可取消状态:PTHREAD_CANCLE_ENABLE.PTHREAD_CANCLE_DISABLE ②取消类型(推迟取消):PTH ...

  5. python多线程的使用(导入线程模块、创建子线程任务、启动子线程任务、获取当前执行的线程号)

    1. 导入线程模块 #导入线程模块 import threading 2. 线程类Thread参数说明 Thread([group [, target [, name [, args [, kwarg ...

  6. 高并发场景下创建多少线程才合适?一条公式帮你搞定!!

    来自:冰河技术 创建多少线程合适, 要看多线程具体的应用场景.一般来说,我们可以将程序分为:CPU密集型程序和I/O密集型程序, 而针对于CPU密集型程序和I/O密集型程序,其计算最佳线程数的方法是不 ...

  7. ExecutorService为创建的线程池ExecutorService pool = Executors.newFixedThreadPool(POOL_SIZE)

    ExecutorService就是要创建的线程池  JAVA中线程池用类ExecutorService代表 ,案例ExecutorService pool = Executors.newFixedTh ...

  8. linux c 线程的创建、线程等待、线程终止、线程分离

    1. 什么是线程   线程是进程执行内部的一个执行分支,在一个进程内部运行的多种执行流:内部本质上是多个线程在同一个地址空间运行:第一个pcb称之为主线程:有多个线程就有多个执行流:一个进程至少有一个 ...

  9. 你知道线程池创建多少线程比较合理吗?

    点击上方蓝色"程序猿DD",选择"设为星标" 回复"资源"获取独家整理的学习资料! 作者 | 小鱼儿_karl 来源 | https://w ...

最新文章

  1. 2021年夏天找SAP新项目的几点感想
  2. 工程制图 (组合体的视图与尺寸注法)
  3. c# mysql varbinary_Mysql中如何插入VarBinary二进制类型?
  4. ROS底盘控制节点 源码分析
  5. 《硬件接入》海康威视接入及CPU性能优化思路
  6. 优化 API 的处理说明以及思路
  7. bootice安装grub2-00 到硬盘或者U盘mbr
  8. 我在华为做外包的真实经历!
  9. 龙卷风路径_龙卷风一般在中国的什么地方有?
  10. Google邮箱账号登陆存在异常活动怎么办?
  11. Fern wifi cracker 无线破解工具——图解
  12. linux桌面lxde 安装_Ubuntu怎么安装轻量级的LXDE桌面?
  13. Dilated Convolution + Receptive Field
  14. HBase Muti-Master
  15. powerbuilder操作excel命令大全
  16. 贝叶斯统计推断_统计推断对决:频繁主义者与贝叶斯主义者
  17. 庸殖状恐剐雷善菊囟蕾
  18. LVS+Nginx实现高可用集群
  19. UVA10118Free Candies
  20. 国家教育部牵手曙光公司——“百校工程”助力教育行业大数据平台建设

热门文章

  1. 网络安全行业与就业-网络安全事件分类
  2. 400+人支持的技能树又又又更新了,来看看对我们的学习有没有帮助呢?Python技能树评测
  3. 软件设计之——“高内聚低耦合”
  4. win7系统启动到一半停止_win7系统装一半死机的解决方法
  5. 第14章_视图(创建视图、查看视图、更新视图的数据、修改、删除视图)
  6. 大A股票主力对敲倒量,接盘返点有哪些特征
  7. linux 用chomd修改权限时报:只读文件系统,linux下修改文件夹权限提示chmod: 更改xx 的权限: 只读文件系统...
  8. mac电脑升级Monterey12.1版之后L2TP连接公司内网后无法正常访问的问题解决
  9. 年薪二十、三十、四十万的Java程序员的生活现状
  10. macos13 Ventura虚拟机安装无网络问题