goroutine

    73热度

    10回答

    最近我一直在寻找Go's goroutines,并认为在Java中拥有类似的东西会很好。至于我寻找并行化方法调用的常见方法是做类似的事情: final String x = "somethingelse"; new Thread(new Runnable() { public void run() { x.matches("something");

    1热度

    2回答

    如何获得并发方法? type test struct { foo uint8 bar uint8 } func NewTest(arg1 string) (*test, os.Error) {...} func (self *test) Get(str string) ([]byte, os.Error) {...} 我认为,法Get()所有代码应该的go fun

    8热度

    2回答

    有没有办法确保goroutine只能在特定的操作系统线程中运行?例如,当GUI操作必须在GUI线程中运行时,但可能有多个运行GUI代码的goroutine。 GOMAXPROCS(1)专门从事这项工作,但这打破了多线程的目的。 LockOSThread()也可以工作,但是也阻止其他任何goroutine在该线程中运行。 有没有办法做到这一点,或者是否所有需要相同线程的东西都在同一个goroutin

    2热度

    1回答

    所以,现在,我只是传递一个指向Queue对象的指针(实现并不重要),并在goroutine的末尾调用queue.add(result),它应该将事物添加到队列。 我需要相同类型的功能 - 当然,使用逗号ok语法执行循环检查完成在性能方面与简单队列添加函数调用相比是不可接受的。 有没有办法做到这一点更好,或不?

    8热度

    3回答

    我知道goroutines被多路复用到多个操作系统线程,所以如果应该阻塞,比如在等待I/O时,其他的继续运行。但是有什么办法可以提前知道如果我要创建n个例程,会产生多少线程? 例如,如果我们调用下面的函数,我们会知道有多少(或最大数)系统线程将在n够程创建: type Vector []float64 // Apply the operation to n elements of v star

    8热度

    3回答

    到目前为止,我见过的所有例子都涉及阻塞以获取结果(通过<-chan运算符)。 我目前的做法是传递一个指向一个结构: type goresult struct { result resultType; finished bool; } 该够程完成后写道。那么只要方便,检查finished就简单了。你有更好的选择吗? 我真正想要的是一个Qt风格的信号插槽系统。我有一个预感,解

    12热度

    2回答

    Go地图类型线程安全吗?我有一个程序,它有很多goroutines读写地图类型。如果我需要实施保护机制,那么最好的办法是什么?

    3热度

    2回答

    我刚才才知道Google的编程语言Go。我一直对它提供的并发支持很感兴趣,并着手对它进行更多的了解。但是,我想了解Go是如何实现并发性的一个特性,到目前为止我还没有看到任何证据表明这个特性完全存在。 下面是一个假设情况:假设我们正在编写一个函数来确定特定输入的Foo值。对于任何给定的输入,Foo值可以在域A或域B中找到(不在两者中)。在这些领域进行搜索的技术是完全不同的,但他们共享成功的搜索往往会

    59热度

    6回答

    我有一个调用的方法的goroutine,并将在通道上返回的值: ch := make(chan int, 100) go func(){ for { ch <- do_stuff() } }() 如何停止这样的goroutine?