• 按键公众号 :
按键精灵电脑版
立即下载

软件版本:2014.06
软件大小:22.9M
更新时间:2021-12-03

按键精灵安卓版
立即下载

软件版本:3.7.2
软件大小:46.2M
更新时间:2023-05-10

按键精灵iOS版
立即下载

软件版本:1.8.0
软件大小:29.2M
更新时间:2023-03-21

按键手机助手
立即下载

软件版本:3.8.0
软件大小:262M
更新时间:2023-05-30

快捷导航

登录 后使用快捷导航
没有帐号? 注册

返回列表 12345678» / 13
发新话题 回复该主题

[神梦] 【命令库】神梦_多线程【线程锁】【互斥】【临界区】【信号量】... [复制链接]

1#

我们在使用多线程时,

很容易遇到资源冲突问题,

所以我专门编写了一个线程锁的命令库!

那什么是资源冲突呢?
一条公路上有两个车道(相当于两个线程),前面有座桥,但是桥只能一次过一辆车,
两个车道在过桥时变成了一个车道,这就产生了资产冲突问题,
如果两个车道的车要同时过,肯定会相撞发生事故(相当于程序出现奔溃)。

那该怎么解决呢?
只能一个车道的车等待,另一个车道的车过去,这样交替过桥(相当于线程锁),才不会发生冲突。

命令库预览




演示例子

命令库例子
  1. '#================================================================
  2. '# 【命令库】神梦_多线程例子
  3. '#----------------------------------------------------------------
  4. '# 【作者】:神梦无痕
  5. '# 【QQ】:1042207232
  6. '# 【Q群】:624655641
  7. '# 【更新】:2021-09-27
  8. '#----------------------------------------------------------------
  9. '# 插件说明:解决多线程资源冲突问题
  10. '#----------------------------------------------------------------
  11. '# 神梦工具: [url]http://pan.baidu.com/s/1dESHf8X[/url]
  12. '#----------------------------------------------------------------
  13. '# 特别声明:请勿用于非法用途!!(否则后果自负)
  14. '#================================================================




  15. DimEnv 互斥锁, 事件锁, 自旋锁, 多线程_计数

  16. //初始化命令库,使用前必须调用该命令
  17. Call Lib.神梦_多线程._初始化()

  18. //=========================演示互斥锁=========================
  19. 多线程_计数 = 0
  20. t = Timer()
  21. TracePrint "开始演示多线程中使用【互斥锁】。。。"
  22. '创建互斥体锁
  23. 互斥锁 = Lib.神梦_多线程.互斥锁创建()
  24. For 100
  25.     BeginThread 多线程A
  26. Next
  27. While 多线程_计数 < 10000
  28.     Delay 100
  29. Wend
  30. '销毁互斥体锁
  31. Call Lib.神梦_多线程.互斥锁销毁(互斥锁)
  32. 提示 = "多线程中使用【互斥锁】计数10000次耗时:" & Timer() - t & " 秒"
  33. MsgBox 提示, 64+4096, "【互斥锁】" : TracePrint 提示

  34. //=========================演示事件锁=========================
  35. 多线程_计数 = 0
  36. t = Timer()
  37. TracePrint "开始演示多线程中使用【事件锁】。。。"
  38. '创建事件
  39. 事件锁 = Lib.神梦_多线程.事件创建()
  40. For 100
  41.     BeginThread 多线程B
  42. Next
  43. While 多线程_计数 < 10000
  44.     Delay 100
  45. Wend
  46. '销毁事件锁
  47. Call Lib.神梦_多线程.事件销毁(事件锁)
  48. 提示 = "多线程中使用【事件锁】计数10000次耗时:" & Timer() - t & " 秒"
  49. MsgBox 提示, 64+4096, "【事件锁】" : TracePrint 提示

  50. //=========================演示自旋锁=========================
  51. 多线程_计数 = 0
  52. t = Timer()
  53. TracePrint "开始演示多线程中使用【自旋锁】。。。"
  54. '创建自旋锁
  55. 自旋锁 = Lib.神梦_多线程.自旋锁创建()
  56. For 100
  57.     BeginThread 多线程C
  58. Next
  59. While 多线程_计数 < 10000
  60. Wend
  61. '自旋锁不需要销毁操作
  62. 提示 = "多线程中使用【自旋锁】计数10000次耗时:" & Timer() - t & " 秒"
  63. MsgBox 提示, 64+4096, "【自旋锁】" : TracePrint 提示

  64. Sub 多线程A()
  65.     ' 作者:神梦无痕
  66.     ' QQ:1042207232
  67.     ' Q群:624655641
  68.     Call Lib.神梦_多线程.互斥锁进入(互斥锁)
  69.     '以下 进入许可区后,要操作的功能函数代码
  70.     For 100
  71.         多线程_计数 = 多线程_计数 + 1
  72.     Next
  73.     TracePrint 多线程_计数
  74.     Call Lib.神梦_多线程.互斥锁退出(互斥锁)'退出要跟进入许可区配对使用。
  75. End Sub
  76. Sub 多线程B()
  77.     ' 作者:神梦无痕
  78.     ' QQ:1042207232
  79.     ' Q群:624655641
  80.     Call Lib.神梦_多线程.事件进入(事件锁)
  81.     '以下 进入许可区后,要操作的功能函数代码
  82.     For 100
  83.         多线程_计数 = 多线程_计数 + 1
  84.     Next
  85.     TracePrint 多线程_计数
  86.     Call Lib.神梦_多线程.事件退出(事件锁)'退出要跟进入许可区配对使用。
  87. End Sub
  88. Sub 多线程C()
  89.     ' 作者:神梦无痕
  90.     ' QQ:1042207232
  91.     ' Q群:624655641
  92.     Call Lib.神梦_多线程.自旋锁进入(自旋锁)
  93.     '以下 进入许可区后,要操作的功能函数代码
  94.     For 100
  95.         多线程_计数 = 多线程_计数 + 1
  96.     Next
  97.     TracePrint 多线程_计数
  98.     Call Lib.神梦_多线程.自旋锁退出(自旋锁)'退出要跟进入许可区配对使用。
  99. End Sub
复制代码
命令库下载
链接: https://pan.baidu.com/s/1DMIg9Pdflgf9Le3JDNpTXw?pwd=pyrn
提取码(回复可见):

提取码: pyrn

QQ群:624655641

最后编辑神梦科技 最后编辑于 2022-12-05 20:28:31
本主题由 超级版主 瑞祥幽冥狼 于 2023/8/13 22:33:47 执行 审核帖子 操作
2#

这个厉害

3#

不错

5年专业脚本作者,免费解决脚本异议和遇到问题,专业制作脚本,专业一对一收徒VX:dream_is_come
4#

厉害

5#

准备研究一下

6#

这个厉害,多线程一直弄不明白

7#

支持一下666

8#

这个厉害了

9#

学习一下 感谢大佬分享~

10#

xue xi le

11#

哦i姐姐哦

12#

厉害

13#

谢谢分享!

14#

学习一下,感谢分享

15#

感谢分享~~~~~~~~~~~~~~~~

16#

神梦_多线程 太像那些高级语言啦

17#

这个好 神梦的雷电库还可以用吗?

18#

好强

19#

6566566

20#

发红包的人最帅~~ 楼主已经帅出太阳系了~~~

发新话题 回复该主题