码迷,mamicode.com
首页 > 其他好文 > 详细

资源竞争

时间:2018-03-24 13:29:01      阅读:161      评论:0      收藏:0      [点我收藏+]

标签:sync   mutex   blog   fun   UNC   body   target   file   down   

#出现原因

竞争条件
如果一个程序在执行时依赖于特点的顺序和时序;但是有无法保证这种顺序或时序,此时就会存在竞争条件

竞争条件经常出现在那些需要性共享资源的并发程序中;当两个或多个进程(线程)同时去修改一项共享资源,
最先访问资源的进程(线程)将得到预期的结果,其他进程(线程)则不然;最终,因为程序无法判断哪个进程(线程)
最先访问了资源,所有将无法产生一致的行为

type DB struct {
	mutex *sync.Mutex
	store map[string][3]float64
}

func (db *DB) nearest(target [3]float64) string {
	var filename string
	db.mutex.Lock()
	smalllest := 100000.0

	for k, v := range db.store {
		dist := distance(target, v)
		if dist < smalllest {
			filename, smalllest = k, dist
		}
	}
	delete(db.store, filename)
	db.mutex.Unlock()
	return filename
}

资源竞争

标签:sync   mutex   blog   fun   UNC   body   target   file   down   

原文地址:https://www.cnblogs.com/zrdpy/p/8638432.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!