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


Posted in Python onApril 27, 2017

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,加锁的小列子。

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

Python 相关文章推荐
学习python (1)
Oct 31 Python
Python标准库之collections包的使用教程
Apr 27 Python
python实现下载pop3邮件保存到本地
Jun 19 Python
Django2.1集成xadmin管理后台所遇到的错误集锦(填坑)
Dec 20 Python
使用Python实现毫秒级抢单功能
Jun 06 Python
Python pip替换为阿里源的方法步骤
Jul 02 Python
如何基于Python制作有道翻译小工具
Dec 16 Python
解决django FileFIELD的编码问题
Mar 30 Python
Python MOCK SERVER moco模拟接口测试过程解析
Apr 13 Python
python学习将数据写入文件并保存方法
Jun 07 Python
Pandas对DataFrame单列/多列进行运算(map, apply, transform, agg)
Jun 14 Python
Python pytesseract验证码识别库用法解析
Jun 29 Python
Mac中升级Python2.7到Python3.5步骤详解
Apr 27 #Python
详解Python 2.6 升级至 Python 2.7 的实践心得
Apr 27 #Python
Python中创建字典的几种方法总结(推荐)
Apr 27 #Python
Python中index()和seek()的用法(详解)
Apr 27 #Python
Python中几种导入模块的方式总结
Apr 27 #Python
Python利用matplotlib生成图片背景及图例透明的效果
Apr 27 #Python
python使用matplotlib绘图时图例显示问题的解决
Apr 27 #Python
You might like
re0第二季蕾姆被制作组打入冷宫!艾米莉亚女主扶正,原因唏嘘
2020/04/02 日漫
phpmyadmin的#1251问题
2006/11/25 PHP
对squid中refresh_pattern的一些理解和建议
2009/04/17 PHP
一个PHP的String类代码
2010/04/20 PHP
PHP下打开URL地址的几种方法小结
2010/05/16 PHP
thinkPHP实现签到功能的方法
2017/03/15 PHP
IE 上下滚动展示模仿Marquee机制
2009/12/20 Javascript
不同浏览器的怪癖小结
2010/07/11 Javascript
JS实现鼠标单击与双击事件共存
2014/03/08 Javascript
浅谈JavaScript function函数种类
2014/12/29 Javascript
Windows系统中安装nodejs图文教程
2015/02/28 NodeJs
jQuery导航条固定定位效果实例代码
2017/05/26 jQuery
微信小程序 地图map实例详解
2017/06/07 Javascript
javascript编程开发中取色器及封装$函数用法示例
2017/08/09 Javascript
微信小程序首页的分类功能和搜索功能的实现思路及代码详解
2018/09/11 Javascript
解决node-sass偶尔安装失败的方法小结
2018/12/05 Javascript
javascript实现弹幕墙效果
2019/11/28 Javascript
基于JavaScript实现简单抽奖功能代码实例
2020/10/20 Javascript
[01:04:48]VGJ.S vs TNC Supermajor 败者组 BO3 第一场 6.6
2018/06/07 DOTA
[52:39]完美世界DOTA2联赛PWL S3 CPG vs Forest 第一场 12.16
2020/12/17 DOTA
tensorflow入门之训练简单的神经网络方法
2018/02/26 Python
python批量图片处理简单示例
2019/08/06 Python
python @classmethod 的使用场合详解
2019/08/23 Python
python实现差分隐私Laplace机制详解
2019/11/25 Python
深入理解Python 多线程
2020/06/16 Python
聊聊python中的异常嵌套
2020/09/01 Python
python中scrapy处理项目数据的实例分析
2020/11/22 Python
goodhealth官方海外旗舰店:新西兰国民营养师
2017/12/15 全球购物
图库照片、免版税图片、矢量艺术、视频片段:Depositphotos
2019/08/02 全球购物
大三毕业自我鉴定
2014/01/15 职场文书
关于赌博的检讨书
2014/01/24 职场文书
毕业设计指导教师评语
2014/12/30 职场文书
《草虫的村落》教学反思
2016/02/20 职场文书
2016年机关单位节能宣传周活动总结
2016/04/05 职场文书
解决Goland 同一个package中函数互相调用的问题
2021/05/06 Golang
python中mongodb包操作数据库
2022/04/19 Python