怎么理解st_thread库(3)
来源:互联网 发布:全文翻译的软件 编辑:程序博客网 时间:2024/05/18 02:22
上次测试,st_thread库本身不会创建线程,其用到线程是调用st_ini()函数的线程。那么有个问题。
怎么阻塞st_ini()的调用线程,让所有线程都跑完呢?
方法1)在主线程中,调用while(true)阻塞主线程。如下
需要注意的是,主线程不能用系统sleep()函数。必须用st库自己提供的st_sleep()函数,否则会造成主线程sleep()期间,其他线程不动。
方法2)
在任何线程里面,调用st_thread_exit(NULL)函数。
如下
在从线程中
需要注意的是st_thread_exit(NULL)后面的代码将不会被执行。如上面在从线程中增加st_thread_exit(NULL)后的执行结果
在主线程中增加
执行结果为
很奇怪的代码。
那么有个有趣的问题。如果主线程和从线程中,都调用了st_thread_exit( NULL),那么会出现什么样的结果呢?
从线程中等待20秒,后在退出
主线程中等待10秒,
结果如图
可以看出,无论在哪里调用st_thread_exit(),或者调用多少次,器都会等到最后一个线程都运行完在退出。
简直是神器啊
0 0
- 怎么理解st_thread库(3)
- 怎么理解st_thread库(4)
- 怎么理解state thread库?
- 怎么理解state thread 库(2)
- 怎么理解 64x64x64 3D LUT?
- 怎么理解正则表达式
- 怎么来理解管道?
- 怎么理解Condition
- 怎么理解Condition
- 奈奎斯特速率怎么理解
- 句柄是什么意思?怎么理解?
- 关于HashTable怎么理解
- 怎么理解web标准
- 怎么理解AOP
- 怎么理解Condition
- OSUnMapTbl 怎么理解
- 怎么理解Condition
- 怎么理解Condition
- poj 2406 Power Strings(kmp next数组的应用)
- MFC中常用控件使用方法总结
- 原生JS forEach()和map()遍历的区别以及兼容写法
- 简单的linux命令
- 在windows端建立本地node-gulp环境进行前端开发
- 怎么理解st_thread库(3)
- Redis主从配置和HA配置
- leetCode练习(50)
- 100. Same Tree
- C语言知识点完美总结
- 2016 Android注释技巧 Android Studio
- sqlite 数据过多,搜索结果慢,增加索引是个不错的方案
- linux 内核移植和根文件系统的制作
- 支付宝异步通知(notify_url)与return_url.