免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2189 | 回复: 9
打印 上一主题 下一主题

[C] 线程基础有一段话不怎么理解 [复制链接]

论坛徽章:
5
技术图书徽章
日期:2013-08-17 07:26:49双子座
日期:2013-09-15 16:46:29双子座
日期:2013-09-25 08:17:09技术图书徽章
日期:2013-09-25 09:11:42天秤座
日期:2013-10-01 16:25:34
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2013-03-31 12:46 |只看该作者 |倒序浏览


但是, 这会使函数不可重入。换言之, 不能创建同一个线程来执行同一个函数。
因为这两个线程将共享同一个静态变量。

问题是:为什么个线程将共享同一个静态变量,会使函数不可重入?
而且这个静态变量也不在函数里啊, 而是线程函数数,不能创建同一个线程来执行同一个函数又怎么说?

感觉这段话很别扭啊 ...

论坛徽章:
4
水瓶座
日期:2013-09-06 12:27:30摩羯座
日期:2013-09-28 14:07:46处女座
日期:2013-10-24 14:25:01酉鸡
日期:2014-04-07 11:54:15
2 [报告]
发表于 2013-03-31 19:56 |只看该作者
strtok的实现不就有static变量吗, 所以不就用strsep/strtok_r了吗

论坛徽章:
5
技术图书徽章
日期:2013-08-17 07:26:49双子座
日期:2013-09-15 16:46:29双子座
日期:2013-09-25 08:17:09技术图书徽章
日期:2013-09-25 09:11:42天秤座
日期:2013-10-01 16:25:34
3 [报告]
发表于 2013-03-31 20:19 |只看该作者
linux_c_py_php 发表于 2013-03-31 19:56
strtok的实现不就有static变量吗, 所以不就用strsep/strtok_r了吗


确实, 这样说我明白了

论坛徽章:
1
技术图书徽章
日期:2014-03-06 15:32:30
4 [报告]
发表于 2013-04-01 00:22 |只看该作者
代码表述的问题是对像生存期与线程生存期不匹配的问题;文字描述又自做多情的引入了静态变量,导致问题更多,没事自己玩自己...
这书不值得细看。

论坛徽章:
3
15-16赛季CBA联赛之山东
日期:2016-10-30 08:47:3015-16赛季CBA联赛之佛山
日期:2016-12-17 00:06:31CU十四周年纪念徽章
日期:2017-12-03 01:04:02
5 [报告]
发表于 2013-04-01 03:01 |只看该作者
LZ

哥告诉你个事情. 所谓线程, 说白了就是每个线程分别有自己的运行时栈. 每个线程的局部变量都保存在自己的运行时栈上, 因此线程和线程之间独立执行互不干扰.

当你在任何线程中使用静态变量或者全局变量, 就糟糕了. 因为静态变量或者全局变量是放在全局的.data段, 或者全局的静态存储区的, 这等于说每个线程共享同样一个全局变量, 任何线程对全局变量的修改都有效, 而你无法确定线程的执行顺序, 也就是说对全局变量的修改结果依赖于线程执行顺序, 这就引发了竞争条件. 为了保护对全局变量修改的顺序, 就引入了各种锁什么的.

骚年, 好好理解下运行时栈...

论坛徽章:
5
技术图书徽章
日期:2013-08-17 07:26:49双子座
日期:2013-09-15 16:46:29双子座
日期:2013-09-25 08:17:09技术图书徽章
日期:2013-09-25 09:11:42天秤座
日期:2013-10-01 16:25:34
6 [报告]
发表于 2013-04-01 08:26 |只看该作者
captivated 发表于 2013-04-01 03:01
LZ

哥告诉你个事情. 所谓线程, 说白了就是每个线程分别有自己的运行时栈. 每个线程的局部变量都保存在自 ...


你以为运行时栈我都不懂吗?你以为运行时栈概念很难吗?
运行时栈哪个人看到不是一目了然

好为人师

论坛徽章:
324
射手座
日期:2013-08-23 12:04:38射手座
日期:2013-08-23 16:18:12未羊
日期:2013-08-30 14:33:15水瓶座
日期:2013-09-02 16:44:31摩羯座
日期:2013-09-25 09:33:52双子座
日期:2013-09-26 12:21:10金牛座
日期:2013-10-14 09:08:49申猴
日期:2013-10-16 13:09:43子鼠
日期:2013-10-17 23:23:19射手座
日期:2013-10-18 13:00:27金牛座
日期:2013-10-18 15:47:57午马
日期:2013-10-18 21:43:38
7 [报告]
发表于 2013-04-01 08:59 |只看该作者
LZ又出现了

论坛徽章:
3
15-16赛季CBA联赛之山东
日期:2016-10-30 08:47:3015-16赛季CBA联赛之佛山
日期:2016-12-17 00:06:31CU十四周年纪念徽章
日期:2017-12-03 01:04:02
8 [报告]
发表于 2013-04-01 09:43 |只看该作者
回复 6# __BlueGuy__


    那你妹你还问这种鸟问题。了解栈这种问题还用问嘛?我勒个去。

论坛徽章:
1
白羊座
日期:2013-09-18 22:02:26
9 [报告]
发表于 2013-04-01 11:09 来自手机 |只看该作者
静态变量是临界区,你说改怎么办?

论坛徽章:
5
技术图书徽章
日期:2013-08-17 07:26:49双子座
日期:2013-09-15 16:46:29双子座
日期:2013-09-25 08:17:09技术图书徽章
日期:2013-09-25 09:11:42天秤座
日期:2013-10-01 16:25:34
10 [报告]
发表于 2013-04-01 13:38 |只看该作者
回复 7# hellioncu

马上就隐匿了...

   
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP