- 主题:gpt也没搞定这个问题
golang,mutex
func myfunc(){
lock()
defer () unlock()
somefuncmaypanic()
otherfuncmaypanic()
}
不想lock后面这个otherfunc 该怎么写
发自「今日水木 on M2102K1C」
--
FROM 222.129.38.*
{}括起来other前头的部分不行吗?
【 在 dawei78 的大作中提到: 】
: golang,mutex
:
: func myfunc(){
: ...................
--
FROM 123.168.94.*
不行
【 在 dawei78 的大作中提到: 】
: golang,mutex
:
: func myfunc(){
: lock()
: defer () unlock()
: somefuncmaypanic()
:
: otherfuncmaypanic()
:
: }
:
: 不想lock后面这个ot
: ..................
发自「今日水木 on M2102K1C」
--
FROM 222.129.38.*


好吧,对go一知半解,只是顾名思义的以为defer是针对作用域的,想不到是A defer statement defers the execution of a function until the surrounding function returns.
那就把otherfunc之前部分的用一个函数括起来呗
【 在 dawei78 的大作中提到: 】
: 不行
: 发自「今日水木 on M2102K1C」
--
FROM 123.168.94.*
用函数显得很繁琐
【 在 weiwallz 的大作中提到: 】
:
: 好吧,对go一知半解,只是顾名思义的以为defer是针对作用域的,想不到是A defer statement defers the execution of a function until the surrounding function returns.
:
: 那就把other
: ..................
发自「今日水木 on M2102K1C」
--
FROM 222.129.38.*
直接调用unlock,这个场景没必要跟defer死磕
【 在 dawei78 (小可爱) 的大作中提到: 】
: golang,mutex
:
:
: func myfunc(){
--
FROM 223.104.5.*
调用过程中panic咋办
【 在 ensonmj 的大作中提到: 】
:
: 直接调用unlock,这个场景没必要跟defer死磕
: --
: 发自xsmth (iOS版)
: --
:
发自「今日水木 on M2102K1C」
--
FROM 222.129.38.*
用panic来重试成本有点高,可重试的失败不建议使用panic
【 在 dawei78 (小可爱) 的大作中提到: 】
: 调用过程中panic咋办
: 【 在 ensonmj 的大作中提到: 】
: :
: : 直接调用unlock,这个场景没必要跟defer死磕
--
FROM 117.136.119.*
调用的函数不是自己的,有panic自己改改不了
【 在 ensonmj 的大作中提到: 】
:
: 用panic来重试成本有点高,可重试的失败不建议使用panic
: --
: 发自xsmth (iOS版)
: --
:
发自「今日水木 on M2102K1C」
--
FROM 222.130.195.*