您现在的位置是:首页 > 技术教程 正文

学习go与Java的讨论

admin 阅读: 2024-03-18
后台-插件-广告管理-内容页头部广告(手机)

这几天博主学习了一下go,发现比Java简单很多,go的代码更少更为简洁,并且并发问题从内部调用锁即可,

func runtaks(id int) string { time.Sleep(10 * time.Microsecond) return fmt.Sprintf("then result is from %d ", id) } func FristResponse() string { numOfRunner := 10 ch := make(chan string, numOfRunner) 漏问题 for i := 0; i < numOfRunner; i++ { go func(i int) { ret := runtaks(i) ch <- ret }(i) } return <-ch }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16

此处go代码各位觉得用Java怎样去解决呢,

func Dosomething(p interface{}, wg *sync.WaitGroup) { wg.Add(2) //加锁 shouldReturn := newFunction(p, wg) newFunction1(p, wg) if shouldReturn { return } wg.Wait() //释放锁 } func newFunction1(p interface{}, wg *sync.WaitGroup) { switch v := p.(type) { case int: fmt.Println("int1", v) case string: fmt.Println("string1", v) case bool: fmt.Println("bool1", v) default: fmt.Println("erro1") } } func newFunction(p interface{}, wg *sync.WaitGroup) bool { if i, ok := p.(int); ok { fmt.Println("int", i) return true } else if s, ok := p.(string); ok { fmt.Println("string", s) return true } else { fmt.Println("erro") } return false } func TestEnum(t *testing.T) { var wg sync.WaitGroup Dosomething(10, &wg) Dosomething("dhahd", &wg) }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42

此处也是一样,各位觉得用Java需要写多少行代码搞定

标签:
声明

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

在线投稿:投稿 站长QQ:1888636

后台-插件-广告管理-内容页尾部广告(手机)
关注我们

扫一扫关注我们,了解最新精彩内容

搜索