multithreading - 使用 Go 1.2 的线程 CGO

标签 multithreading go thread-safety cgo

编辑:这个问题没有实际意义。我误读了提交日期,它包含在现有版本的 Go 工具中。谢谢,詹姆斯!

似乎即将发布的 Go (1.3) 将允许 non-Go threads to call CGO callbacks .

我想知道迄今为止,人们通常会做什么来绕过此限制。

也就是说,我有一个自己创建线程的第三方库,我想从这些线程中获取一些信息到 Go 代码中。

在代码的“C”端,某种从 C 线程到 Go 线程的切换机制?有什么方法可以在不调用 Go 的情况下将消息放入队列?其他想法?

最佳答案

您突出显示的提交是从去年 2 月开始的,也就是 Go 1.1 版本之前的提交。它还引用了 issue 4435 ,它被标记为 Go1.1

我不确定人们以前做了什么来绕过限制(如果确实可能的话),但是对于该语言的最后两个发布版本,没有必要使用变通方法。我已经在我的许多项目中顺利使用了该功能。

关于multithreading - 使用 Go 1.2 的线程 CGO,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23252387/

相关文章:

c# - ConcurrentBag 字符串并在 Parallel.ForEach 中使用 .Contains

C++/Linux : how do you write a thread-safe library that uses sockets?

go - 收集实时 GC 指标 - Golang

c# - Fluent-ASsertions ShouldRaisePropertyChangeFor 不适用于异步任务?

Java:基于对象值的同步

c# - 使用 Parallel.ForEach() 时防止远程系统过载

google-app-engine - 在 Go 中合并独立的 webapp 和 GAE

json - 如果我想在 2 个不同的 JSON 中解析对象,如何避免重复对象

c# - C#获取属性的时候需要加锁吗

ruby 线程,杀死与终止与退出