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的Django框架下搭建的BLOG添加RSS功能的教程
Apr 08 Python
TensorFlow搭建神经网络最佳实践
Mar 09 Python
Django 浅谈根据配置生成SQL语句的问题
May 29 Python
kaggle+mnist实现手写字体识别
Jul 26 Python
Python初学者需要注意的事项小结(python2与python3)
Sep 26 Python
浅谈Python大神都是这样处理XML文件的
May 31 Python
Python空间数据处理之GDAL读写遥感图像
Aug 01 Python
python实现名片管理器的示例代码
Dec 17 Python
TensorFlow实现批量归一化操作的示例
Apr 22 Python
基于python SMTP实现自动发送邮件教程解析
Jun 02 Python
python实现在线翻译
Jun 18 Python
python输出国际象棋棋盘的实例分享
Nov 26 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
php正则
2006/07/07 PHP
纯php生成随机密码
2015/10/30 PHP
PHP页面输出搜索后跳转下一页的处理方法
2016/09/30 PHP
thinkphp 抓取网站的内容并且保存到本地的实例详解
2017/08/25 PHP
TP5(thinkPHP5)框架基于ajax与后台数据交互操作简单示例
2018/09/03 PHP
PHP实现微信商户支付企业付款到零钱功能
2018/09/30 PHP
php框架CI(codeigniter)自动加载与自主创建对象操作实例分析
2020/06/06 PHP
jquery 必填项判断表单是否为空的方法
2008/09/14 Javascript
jquery.pagination.js 无刷新分页实现步骤分享
2012/05/23 Javascript
jQuery动态添加、删除元素的方法
2014/01/09 Javascript
JavaScript简单实现鼠标拖动选择功能
2014/03/06 Javascript
简介JavaScript中用于处理正切的Math.tan()方法
2015/06/15 Javascript
使用jQuery获取data-的自定义属性
2015/11/10 Javascript
原生JavaScript实现动态省市县三级联动下拉框菜单实例代码
2016/02/03 Javascript
jQuery版AJAX简易封装代码
2016/09/14 Javascript
Node.js  事件循环详解及实例
2017/08/06 Javascript
Web技术实现移动监测的介绍
2017/09/18 Javascript
使用D3.js构建实时图形的示例代码
2018/08/28 Javascript
React router动态加载组件之适配器模式的应用详解
2018/09/12 Javascript
ES6如何用一句代码实现函数的柯里化
2020/01/18 Javascript
python目录操作之python遍历文件夹后将结果存储为xml
2014/01/27 Python
python根据出生日期获得年龄的方法
2015/03/31 Python
tensorflow 输出权重到csv或txt的实例
2018/06/14 Python
Python中按值来获取指定的键
2019/03/04 Python
int在python中的含义以及用法
2019/06/27 Python
nginx+uwsgi+django环境搭建的方法步骤
2019/11/25 Python
Python破解BiliBili滑块验证码的思路详解(完美避开人机识别)
2020/02/17 Python
Django自定义列表 models字段显示方式
2020/04/03 Python
Windows 平台做 Python 开发的最佳组合(推荐)
2020/07/27 Python
大二学期个人自我评价
2014/01/13 职场文书
一年级小学生评语
2014/04/22 职场文书
倡议书格式
2014/08/30 职场文书
基层党员对照检查材料
2014/09/24 职场文书
原料仓管员岗位职责
2015/04/01 职场文书
小学大队干部竞选稿
2015/11/20 职场文书
阿里云服务器Ubuntu 20.04上安装Odoo 15
2022/05/20 Servers