全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

Golang与python线程详解及简单实例

Golang与python线程详解及简单实例

在GO中,开启15个线程,每个线程把全局变量遍历增加100000次,因此预测结果是 15*100000=1500000.

var sum int
var cccc int
var m *sync.Mutex

func Count1(i int, ch chan int) {
  for j := 0; j < 100000; j++ {
   cccc = cccc + 1
  }
  ch <- cccc
}
func main() {
  m = new(sync.Mutex)
  ch := make(chan int, 15)
  for i := 0; i < 15; i++ {
   go Count1(i, ch)
  }
  for i := 0; i < 15; i++ {
   select {
   case msg := <-ch:
     fmt.Println(msg)
   }
  }
}

但是最终的结果,406527

说明需要加锁。

func Count1(i int, ch chan int) {
  m.Lock()
  for j := 0; j < 100000; j++ {
   cccc = cccc + 1
  }
  ch <- cccc
  m.Unlock()
}

最终输出:1500000

python中:同样方式实现,也不行。

count = 0
def sumCount(temp):
  global count
  for i in range(temp):
    count = count + 1
li = []
for i in range(15):
  th = threading.Thread(target=sumCount, args=(1000000,))
  th.start()
  li.append(th)
for i in li:
  i.join()
print(count)

输出结果:3004737

说明也需要加锁:

mutex = threading.Lock()
count = 0
def sumCount(temp):
  global count
  mutex.acquire()
  for i in range(temp):
    count = count + 1
  mutex.release()
li = []
for i in range(15):
  th = threading.Thread(target=sumCount, args=(1000000,))
  th.start()
  li.append(th)
for i in li:
  i.join()
print(count)

输出1500000

OK,加锁的小列子。

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!


# Golang与python线程详解  # python线程  # Golang多线程刷票的实现代码  # golang线程安全的map实现  # 浅谈golang for 循环中使用协程的问题  # golang实现多协程下载文件(支持断点续传)  # 文字解说Golang Goroutine和线程的区别  # Golang协程池gopool设计与实现  # golang协程设计及调度原理  # golang协程与线程区别简要介绍  # 加锁  # 列子  # 遍历  # 希望能  # 谢谢大家  # 全局变量  # 结果是  # func  # cccc  # sync  # Mutex  # ch  # lt  # main  # select  # chan  # case  # int  # strong  # Golang 


相关文章: 盘锦网站制作公司,盘锦大洼有多少5G网站?  如何快速使用云服务器搭建个人网站?  制作网站的软件下载免费,今日头条开宝箱老是需要下载怎么回事?  高性价比服务器租赁——企业级配置与24小时运维服务  如何确保FTP站点访问权限与数据传输安全?  ,在苏州找工作,上哪个网站比较好?  如何高效完成独享虚拟主机建站?  定制建站哪家更专业可靠?推荐榜单揭晓  制作ppt免费网站有哪些,有哪些比较好的ppt模板下载网站?  网站制作难吗安全吗,做一个网站需要多久时间?  网站制作多少钱一个,建一个论坛网站大约需要多少钱?  北京专业网站制作设计师招聘,北京白云观官方网站?  如何快速辨别茅台真假?关键步骤解析  如何将凡科建站内容保存为本地文件?  如何使用Golang table-driven基准测试_多组数据测量函数效率  如何在建站主机中优化服务器配置?  北京网站制作费用多少,建立一个公司网站的费用.有哪些部分,分别要多少钱?  全景视频制作网站有哪些,全景图怎么做成网页?  国美网站制作流程,国美电器蒸汽鍋怎么用官方网站?  如何通过商城免费建站系统源码自定义网站主题?  公司门户网站制作流程,华为官网怎么做?  如何彻底删除建站之星生成的Banner?  C#如何使用XPathNavigator高效查询XML  如何在腾讯云服务器快速搭建个人网站?  ppt制作免费网站有哪些,ppt模板免费下载网站?  制作充值网站的软件,做人力招聘为什么要自己交端口钱?  建站之星如何开启自定义404页面避免用户流失?  如何做网站制作流程,*游戏网站怎么搭建?  公司网站建设制作费用,想建设一个属于自己的企业网站,该如何去做?  建站主机选购指南:核心配置优化与品牌推荐方案  如何在搬瓦工VPS快速搭建网站?  常州自助建站:操作简便模板丰富,企业个人快速搭建网站  如何选择高性价比服务器搭建个人网站?  建站之星安装路径如何正确选择及配置?  网页设计与网站制作内容,怎样注册网站?  公司门户网站制作公司有哪些,怎样使用wordpress制作一个企业网站?  定制建站如何定义?其核心优势是什么?  东莞市网站制作公司有哪些,东莞找工作用什么网站好?  如何在企业微信快速生成手机电脑官网?  建站主机选购指南:核心配置与性价比推荐解析  公众号网站制作网页,微信公众号怎么制作?  Android自定义listview布局实现上拉加载下拉刷新功能  如何在新浪SAE免费搭建个人博客?  教学论文网站制作软件有哪些,写论文用什么软件 ?  如何制作一个表白网站视频,关于勇敢表白的小标题?  股票网站制作软件,网上股票怎么开户?  如何在景安云服务器上绑定域名并配置虚拟主机?  如何在Golang中使用encoding/gob序列化对象_存储和传输数据  javascript中对象的定义、使用以及对象和原型链操作小结  红河网站制作公司,红河事业单位身份证如何上传? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。