SV语言-线程

线程

线程是独立运行的程序。
线程需要触发,可以结束或不结束。

并行执行
fork…jion —— 等块内所有语句执行完后才继续执行后续
fork…jion_any —— 完成第一个语句后(最短),父进程才继续执行,其他线程也继续
fork…jion_none —— 调度其块内语句时,父进程继续执行
在这里插入图片描述
wait fork等待所有子线程结束
disable 标签 停止线程
disable fork 停止当前线程中衍生出来的所有子线程

线程间的通信

线程间的通信(Inter-Process Communication, IPC)
IPC通常包括:创建信息的生产者、接收信息的消费者、传递信息的渠道

event事件

-> e :触发e事件
@ e :阻塞在e事件,需要等e事件触发(边沿敏感)
wait (e.triggered) : (电平敏感)
线程多次通知的请求使用“@”;
这个方法比起@而言,可以避免在相同时刻触发event而带来的竞争问题,但同样无法捕捉已经被触发,但后续才等待的事件。

semaphore旗语

实现对同一资源的访问控制
互斥访问

new() : 创建一个带单个或多个钥匙的旗语
get() : 获取一个或多个钥匙
put() :返回一个或多个钥匙
trry_get():获取旗语不被阻塞,足够多的钥匙返回1,不够返回0

mailbox信箱

new() : mailbox是一种对象
get() : 从信箱移除数据
put() :把数据放入信箱
peek():对信箱的数据拷贝而不移除
非阻塞方法:
try_get()try_put()try_peek()
size是0或没指定,则信箱是无限大

信箱队列
通过new()例化只要需要声明
可存储不同数据类型,但不建议类型必须一致
阻塞方法非阻塞方法
用作FIFOFIFO或其他应用
传递形参传递的是mailBox指针ref
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值