你出问题的就是在线程传参数的时候出了问题,更没有明白多线程的本质。先等会我给你画一个图,你就明白了。👻
好的 跪谢大哥
@拿着百万来娶你:
自己画图水平太烂了,尤其后面不知道咋画了,文字描述吧。我以3个线程为例子介绍。如有不懂之处,欢迎追问。
@拿着百万来娶你: 你这东西涉及到线程安全了。你可以搜一搜,你传地址类似传来一个对于这几个创建好线程来说是全局变量的东西,就会出现杂七杂八的自己料想不到的问题。
@寂静的羽夏: 大哥 我懂了 还有就是那个为什么能打出5这个给数字 明确给出了i < 5 的呀
@拿着百万来娶你: 你把这个循环执行完最后一步,也就是上一步 i=4的时候,然后 i++,i=5,不满足条件退出。而正巧有一个线程这个时候用了i这个地址,就打印出5 了。
@寂静的羽夏: 好的 谢谢大哥 我终于懂了呀 跪谢大哥
@寂静的羽夏: 大哥牛逼
@寂静的羽夏: 大哥 那个线程函数pthread_create函数中最后一个参数将取地址符给删了 然后再给上面那个 thread_fun函数中的第一句(int)arg 将第一个解引用符删了 就可以控制每一轮打印的都是01234这五个数字 但是还是是无序的 这什么原理 您知道不
@拿着百万来娶你: 我给你白解释了,回去再看几遍。😂
@寂静的羽夏: 好的 大哥
@拿着百万来娶你: 就是线程没有执行顺序嘛,快给大哥上豆豆 (๑‾ ꇴ ‾๑)!
@不想输入手机号和邮箱: 我看一下咋上豆豆 刚来博客园 有些东西不会的 抱歉
@寂静的羽夏: woc 感谢大哥呀 终于给这玩意搞明白了 跪谢好大哥