SF
vistart的个人空间
vistart的个人空间
注册登录
关注博客
注册登录
主页
关于
RSS
Golang 中使用通道构建协程间的依赖关系(工作流)
vistart
2 月 6 日
阅读 2 分钟
456
假设有一组任务有前后依赖关系,我们可以使用Go的通道特性,将前一个任务的执行结果(或结束信号)送入下一个任务,已达到自动化依次执行工作流的每个任务的目的。
Golang 中保存通道的 map 在设为 nil 后不会回收元素,即通道依然有效
vistart
2 月 6 日
阅读 2 分钟
523
Golang 中,如果用一个 map 保存实例化的通道,并用在协程间发送和接收。当该 map 被赋值为 nil 时,管理的通道依然有效。示例代码如下: {代码...} 你也可以访问如下链接尝试效果:[链接]实际执行结果为: {代码...} 从执行结果可以看出,虽然 channelMap 被赋值为 nil,但这并不意味着其值会被立即回收。如果 map 的元...
Golang 如何监听某个函数(方法)开始执行和执行结束
vistart
2 月 2 日
阅读 4 分钟
542
如果想监听函数(方法)开始执行和执行结束,你需要设置两个通道:chanStarted: 用于发送开始执行信号。chanFinished: 用于发送执行结束信号。同时,为了保证监听方能实时得知“开始执行”或“执行结束”信号,需要在执行任务前开启监听。以下为模拟监听函数(方法)开始执行和执行结束的示例: {代码...} 上述方案中,必须...
Golang 使用通道实现流程的暂停与继续
vistart
1 月 30 日
阅读 4 分钟
629
以上代码中,对于已经开始执行的任务无法暂停,只能做到收到暂停通知后不再继续执行后续任务。再考虑到chPause和chResume均为无缓冲通道,这意味着任务未执行完毕时,暂时不接收chPause和chResume,即发送端会被阻塞。此时,可以认为,只要暂停信号成功送入,即表示之前的任务已暂停,且不会执行后续的任务。若之前任务...
在 Ubuntu 22.04 中编译 tensorflow 2,并调试源代码
vistart
2023-12-18
阅读 3 分钟
683
本文描述如何在 Ubuntu 22.04 中编译 tensorflow 2 源码,以及如何生成 Python 代码包,并能够调试 tensorflow 源码,包括单步执行、观察变量和表达式等能力。
Python 接收标准输入
vistart
2023-11-17
阅读 1 分钟
334
在 Python 中,可以绑定 sys.stdin 和死循环实现无限接收标准输入的能力。具体示例代码如下:main.py: {代码...} 其中:若标准输入为屏幕,则直接运行:python main.py,用户每输入一行后按回车键,即解析当前一行输入;按q后回车,即可退出执行。若标准输入为文件,则直接运行:python main.py < input.txt,则自动...