关于 Sync.Mutex 的竞争问题

Chaox

var mu sync.Mutex

func produce(ch chan<- int){
	for i:=0;i<10;i++{
		mu.Lock()
		ch<-i
		fmt.Println("produce:"+strconv.Itoa(i))
		mu.Unlock()
	}
}

func consumer(ch <- chan int){
	for i:=0;i<10;i++{
		mu.Lock()
		v:=<-ch
		fmt.Println("consumer:"+strconv.Itoa(v))
		mu.Unlock()
	}
}
func main(){
	ch:=make(chan int,5)
 	go produce(ch)
	go consumer(ch)
	time.Sleep(10*time.Second)
}

我是 go 的初学者,我今天写了一个问题代码。本意是让资源生成和消费的时候同时打印出该资源信息。 我知道当 consumer 先执行时会导致死锁,但是我不明白的是为什么 produce 先执行时,即使他释放了锁,consumer 也竞争不到锁,produce 会一直占有锁,这里面的竞争规则是什么样的?我在网上没有找到满意的答案

关于 iap,我想替苹果说句话

di94sh:iap 抽成的确很高,但是如果你的 app 中有订阅功能的话你就会觉得 iap 虽然难用,但最起码能用. 安卓开发者如果想增加订阅功能简直不要太难,微信 支付宝需要企业有一定资质才能去申请委托代扣,而且申请流程极其繁琐.订阅功能对于卖会员的 app 来说极其重要,我做的产品中按月续订次月留存高达 70%多.而普通的月卡留存非常非常的低

关于 currenttime 的问题

aglsv:我直接写了个 var t = audio.currenttime 时。t 的值一直是零,写在 ontimeupdate 函数里的时候就能正常返回值 不过 console 里会提示 GET http://127.0.0.1:5502/favicon.ico 404 (Not Found)但是不影响 想问问原因

关于 Online Judge 判题沙箱的学习问题

zxCoder:想从头造一个轮子,写一个 OJ 系统,其他 web 开发和业务逻辑相关的因为打过比赛比较清楚,但是判题这部分几乎没有任何基础,想问一下应该如何从零学起?是不是对系统底层,操作系统,系统安全这些方面要求很高? 或者目前有没有比较完善安全的这种判题器?

关于 severless 的疑问和痛点

fanyingmao:短暂入职了一家公司使用 aws 的 lambda 开发的,离职的原因之一就是用了 lambada 这个我不了解的技术,跑路的原因之一是感觉用了这个技术会降低我的开发效率。 1 、一个接口调用 severless 运行需要将所有函数接口代码加载到内存,运行玩之后就释放,还有对于数据库之类的连接就不是用连接池的方式要不断创建断开,这样运行效…

关于 dotnet 语言属性首字母大写 Pascal 的探讨,以及不同语言的区别

dswyzx:一开始学习是建议怎么样就怎么样,搬了几年砖之后放飞自我就喜欢将属性首字母小写处理 camel 。一方面是不用频繁切换大小写,一方面是有时候涉及 json 对象的属性就是 camel 风格。然后 vs 智能粘贴大法直接定义好类。当忽然被提出按照规范写的时候。我才开始思考为什么规范是这样的。而哪种方式才应该推广。后来查了一下 java python…