当前位置: 首页 > 软件库 > 程序开发 > 常用工具包 >

Fanout

让编写平行代码更加容易
授权协议 Apache-2.0
开发语言 Google Go
所属分类 程序开发、 常用工具包
软件类型 开源软件
地区 国产
投 递 者 楚俊迈
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

Fanout 可以让编写平行代码更加容易。Fanout 的代码是可以重复使用的,所以你可以很容易地就写下平行代码,而不用担心 fatal error: all goroutines are asleep - deadlock!

示例代码:

for _, word := range domainWords {
    if strings.TrimSpace(word) == "" {
        continue
    }
    py := pinyin.Convert(word)
    pydowncase := strings.ToLower(py)
    domain := pydowncase + ".com"
    outr, err := domainAvailable(word, domain)
    if err != nil {
        fmt.Println("Error: ", err)
        continue
    }
    if outr.available {
        fmt.Printf("[Ohh Yeah] %s %s\n", outr.word, outr.domain)
        continue
    }
    fmt.Printf("\t\t\t %s %s %s\n", outr.word, outr.domain, outr.summary)
}
type checkResult struct {
    word      string
    domain    string
    available bool
    summary   string
}
func domainAvailable(word string, domain string) (ch checkResult, err error) {
    var summary string
    var output []byte
    ch.word = word
    ch.domain = domain
    cmd := exec.Command("whois", domain)
    output, err = cmd.Output()
    if err != nil {
        fmt.Println(err)
        return
    }
    outputstring := string(output)
    if strings.Contains(outputstring, "No match for \"") {
        ch.available = true
        return
    }
    summary = firstLineOf(outputstring, "Registrant Name") + " => "
    summary = summary + firstLineOf(outputstring, "Expiration Date")
    ch.summary = summary
    return
}
 相关资料
  • 11.3 编写代码 要完成我们的程序,我们需要创建一个Java文件。默认情况下,Maven会编译src/main/java目录下的源文件,因此您需要创建该目录结构,然后添加一个名为src/main/java/Example.java的文件: import org.springframework.boot.*; import org.springframework.boot.autoconfigur

  • 本文向大家介绍让Java代码更高效,包括了让Java代码更高效的使用技巧和注意事项,需要的朋友参考一下 本文简单介绍一下在写代码过程中用到的一些让JAVA代码更高效的技巧。 1,将一些系统资源放在池中,如数据库连接,线程等.在standalone的应用中,数据库连接池可以使用一些开源的连接池实现,如C3P0,proxool和DBCP等,在运行在容器中的应用这可以使用服务器提供的DataSource

  • 是否有一套我应该遵循的标准规则来确保为Spark编写的Scala代码会并行运行? 我发现自己正在编写火花代码,其中包括对和等函数的调用,我认为这些函数将并行/分布式运行。但是我真的不知道如何测试这些函数是否是并行/分布式运行的。是否有专门针对Spark的文本或可应用于Spark的通用文本来解释这一点?

  • 在进一步介绍之前,让我们花点时间来讨论编写"通用"代码时的约束条件 - 即运行在服务器和客户端的代码。由于用例和平台 API 的差异,当运行在不同环境中时,我们的代码将不会完全相同。所以这里我们将会阐述你需要理解的关键事项。 服务器上的数据响应 在纯客户端应用程序 (client-only app) 中,每个用户会在他们各自的浏览器中使用新的应用程序实例。对于服务器端渲染,我们也希望如此:每个请求

  • 编辑:为了澄清一点,我对此表示怀疑,因为通道似乎在做关闭通道的工作,但当然,我不能在任何goroutine中关闭通道,因为所有例程共享同一个通道。因此,我使用来模拟一个进行某种“缓冲关闭”的通道。 Edit2:原始代码实际上并不起作用,因为有时来自例程的信号在它刚刚对执行int之前被读取。需要一个“清理”循环。

  • 这就是它看起来的样子。 它工作得很好,等待数据加载,然后开始操作。但这是相当多的代码,有没有更好的方法来做它?