当前位置: 首页 > news >正文

做的网站必须放大丰区城乡和住房建设局网站

做的网站必须放,大丰区城乡和住房建设局网站,建一个论坛网站怎么建,烟台网站建设哪家服务好1. 并发基础 并发是同时发生多个计算或事件的能力。并发通常通过同时执行多个任务或进程来实现#xff0c;这些任务或进程共享相同的资源#xff08;例如内存或处理器#xff09;。并发使用的基本机制被称为锁。在Go语言中#xff0c;锁是一个类型变量#xff0c;它包含一…1. 并发基础 并发是同时发生多个计算或事件的能力。并发通常通过同时执行多个任务或进程来实现这些任务或进程共享相同的资源例如内存或处理器。并发使用的基本机制被称为锁。在Go语言中锁是一个类型变量它包含一个内部计数器用于跟踪已获取的锁的数量。当一个goroutine获取一个锁时它会将计数器增加一当一个goroutine释放一个锁时它会将计数器减少一。 2. 锁类型 Go语言中提供了五种类型的锁互斥锁mutex、读写锁RWMutex、等待组WaitGroup、一次性锁Once和条件变量Cond。 互斥锁mutex是一个基础的锁它只能被一个goroutine同时持有。如果另一个goroutine试图获取一个已被持有的互斥锁它将被阻塞直到持有锁的goroutine释放锁。 package mainimport (fmtsync )func main() {// 创建一个互斥锁var mutex sync.Mutex// 使用互斥锁保护共享资源mutex.Lock()fmt.Println(Only one goroutine can access the shared resource at a time.)mutex.Unlock() }读写锁RWmutex是一种更高级的锁它允许多个goroutine同时读取受保护的数据但只允许一个goroutine同时写入受保护的数据。这可以提高程序的性能因为读取操作通常比写入操作要快。 package mainimport (fmtsync )func main() {// 创建一个读写锁var rwmutex sync.RWMutex// 使用读写锁保护共享资源rwmutex.RLock()fmt.Println(Multiple goroutines can read the shared resource at the same time.)rwmutex.RUnlock()// 使用写锁保护共享资源rwmutex.Lock()fmt.Println(Only one goroutine can write to the shared resource at a time.)rwmutex.Unlock() }等待组WaitGroup是一个同步原语它允许一个goroutine等待其他一组goroutine完成。 package mainimport (syncfmt )var wg sync.WaitGroupfunc main() {// 创建10个goroutine来并发地执行任务for i : 0; i 10; i {wg.Add(1) // 告诉等待组有1个goroutine需要等待go func() {// 执行任务fmt.Println(Hello, world!)wg.Done() // 告诉等待组当前goroutine已完成}()}// 等待所有goroutine完成wg.Wait()fmt.Println(All goroutines have finished.) }一次性锁Once是一个同步原语它确保某个操作只被执行一次。 package mainimport (syncfmt )var once sync.Oncefunc main() {// 只执行一次init函数once.Do(func() {fmt.Println(Hello, world!)}) }条件变量Cond是一种同步原语它允许一个goroutine等待某个条件满足。 package mainimport (syncfmttime )var cond sync.NewCond(sync.Mutex{}) var count intfunc main() {go func() {// 等待count大于0cond.L.Lock()for count 0 {cond.Wait()}cond.L.Unlock()fmt.Println(Count is greater than 0.)}()// 将count设置为1并通知等待的goroutinetime.Sleep(1 * time.Second)cond.L.Lock()count 1cond.Signal()cond.L.Unlock() }3.锁的注意事项 死锁死锁是指两个或多个goroutine相互等待对方释放锁从而导致程序永远无法继续执行。为了避免死锁必须确保每个goroutine在释放一个锁之前都必须获取该锁。锁争用锁争用是指多个goroutine同时尝试获取同一个锁从而导致程序性能下降。为了减少锁争用可以尽量使用读写锁并减少锁的持有时间。锁粒度锁粒度是指锁保护的资源的范围。锁粒度越小对程序并发性的影响就越小。因此在选择锁的类型和粒度时应权衡锁的性能和并发性。
http://www.pierceye.com/news/269767/

相关文章:

  • 建设网站需要从哪方面考虑微信云开发
  • 做环评工作的常用网站大学两学一做专题网站
  • 网站设计的公司如何选seo 优化教程
  • 济南网站中企动力河南网站建设服务
  • 网站建设的定位是什么意思php网站开发实例视频
  • 做资讯类网站需要特殊资质吗宜昌网站排名优化
  • 百度怎么建立自己的网站科技公司网站设计公司
  • 长沙做网站的包吃包住4000网站图片如何做水印
  • wordpress的固定链接怎么设置包头整站优化
  • 瓯海建设网站中国建设劳动协会网站
  • 烟台专业做网站公司有哪些中企动力重庆分公司
  • iis 怎么绑定网站二级目录广东东莞市
  • 运城网站制作公司成crm软件
  • 阿里云网站备案登陆荆州网站开发
  • 06628 网页制作与网站建设深圳建筑人才网为什么电脑打不开
  • 企业网站建设方讯快速建站代理
  • 全面的基础微网站开发wordpress首页插件
  • 陕西省住房和城乡建设厅网站上怎么打印证书中盛客户管理软件
  • html网站标题怎么做的国外免费推广平台有哪些
  • 网站制作com cn域名有什么区别网站制作哪家好
  • 平湖网站设计北京广告公司名录
  • 不良网站进入窗口免费正能量安全的南昌网站制作
  • 商品交换电子商务网站开发网站首页制作公司
  • wordpress全站备份建设网站和推广
  • 广州市官网网站建设哪家好上海营销型网站建设公司
  • 江山网站制作瑞安自适应网站建设
  • 生意网官方网站高端建设网站
  • 公司网站建设南宁腾讯企业邮箱登录入口手机版
  • 简历网站推荐做网站公司是干什么的
  • 网站备案率是什么会展相关app和网站的建设情况