鱼C论坛

 找回密码
 立即注册
查看: 1653|回复: 3

threading多线程的一些疑惑

[复制链接]
发表于 2017-6-17 22:36:18 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 西殴 于 2017-6-17 23:54 编辑

这个线程和我想象的线程不一样
我想象的线程 下图:
1497710692(1).jpg
  1. import threading

  2. def func():

  3.     print('第二线程      ')


  4.     print('第二线程第二次    ')


  5. def funcc():

  6.     print('第一线程')


  7.     print('第一线程第二次   ')
  8.    

  9. thread1= threading.Thread(target=func)
  10. thread2= threading.Thread(target=funcc)
  11. thread1.start()
  12. thread2.start()

  13. #执行结果:
  14. >>> 第二线程      第一线程

  15. 第二线程第二次    第一线程第二次  
复制代码


跟自己写的有什么区别
  1. def func():
  2.     print('第一线程             ',end='')
  3.     func1()

  4. def func1():
  5.     print('第二线程')
  6.     func2()

  7. def func2():
  8.     print('第一线程第二次       ',end='')
  9.     func3()

  10. def func3():
  11.     print('第二线程第二次')



  12. func()

  13. #执行结果:
  14. 第一线程             第二线程
  15. 第一线程第二次       第二线程第二次
复制代码

多线程的执行过程给我的感觉就如 下图: 1497711205(1).jpg

更形象一点 下图:
1497712021(1).jpg

线程可以不可以先执行func()里的一段代码 而不是只执行func()里的一条代码就跳到funcc()里执行一跳代码,
再跳回func()里执行一跳代码这样的循环
1497709914(1).jpg




想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2017-6-17 23:08:14 | 显示全部楼层
多线程是并行的,不一定谁先谁后

要协调线程之间的先后,可以用
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-6-17 23:12:40 | 显示全部楼层
SixPy 发表于 2017-6-17 23:08
多线程是并行的,不一定谁先谁后

要协调线程之间的先后,可以用 锁

它给我的感觉并没有是并行的   只不过是cpu快而已   CPU快跳来跳去   就以为是它是两个是并行的了?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-6-25 22:06:10 | 显示全部楼层
本帖最后由 西殴 于 2017-6-25 22:13 编辑
SixPy 发表于 2017-6-17 23:08
多线程是并行的,不一定谁先谁后

要协调线程之间的先后,可以用 锁


证明多线程不是并发的
  1. import threading

  2. def fun():
  3.     while True:
  4.         print('1 ')

  5. def func():
  6.     while True:
  7.         print('2')

  8. #lock = threading.Lock()
  9. thread1= threading.Thread(target=fun())
  10. thread2= threading.Thread(target=func())

  11. thread1.start()
  12. thread2.start()
复制代码

如果是并发的应该是这样的吧
  1. 12
  2. 12
  3. 12
  4. 12
  5. 12
  6. 12
  7. ::
  8. ::
  9. 12
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-27 01:34

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表