51Testing软件测试论坛

标题: python中“调用栈”与“线程”的不同 [打印本页]

作者: 测试积点老人    时间: 2022-6-20 15:18
标题: python中“调用栈”与“线程”的不同

** “调用栈”与“线程”之间的不同**

调用栈:

  1. def a():
  2. print('a() starts')
  3. b()
  4. d()
  5. print('a() returns')

  6. def b():
  7. print('b() starts')
  8. c()
  9. print('b() returns')

  10. def c():
  11. print('c() starts')
  12. print('c() returns')

  13. def d():
  14. print('d() starts')
  15. print('d() returns')

  16. a()
  17. 线程代码:
  18. import threading
  19. import time

  20. def worker():
  21. print(threading.current_thread().getName(), 'Starting')
  22. time.sleep(0.2)
  23. print(threading.current_thread().getName(), 'Exiting')

  24. def my_service():
  25. print(threading.current_thread().getName(), 'Starting')
  26. time.sleep(0.3)
  27. print(threading.current_thread().getName(), 'Exiting')

  28. t = threading.Thread(name='my_service', target=my_service)
  29. w = threading.Thread(name='worker', target=worker)
  30. w2 = threading.Thread(target=worker) # use default name

  31. w.start()
  32. w2.start()
  33. t.start()

  34. 线程运行结果:

  35. worker Starting
  36. Thread-1 Starting
  37. my_service Starting
  38. worker Exiting
  39. Thread-1 Exiting
  40. my_service Exiting

  41. 调用栈运行结果:
  42. a() starts
  43. b() starts
  44. c() starts
  45. c() returns
  46. b() returns
  47. d() starts
  48. d() returns
  49. a() returns
复制代码

理解线程的并行过程以及各线程的运行时间,是学会利用线程的基础;调用栈的运行过程,是python中函数调用的基本运行方式,方便更容易理解局部与全局作用域。



作者: kallinr    时间: 2022-6-21 09:43
涨姿势了
作者: 海海豚    时间: 2022-6-21 10:51
厉害了
作者: qqq911    时间: 2022-6-21 11:09
感谢分享
作者: 郭小贱    时间: 2022-6-21 14:19
谢谢分享
作者: jingzizx    时间: 2022-6-21 15:44





欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2