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中声明只包含一个元素的元组数据方法
Aug 25 Python
用Python实现一个简单的多线程TCP服务器的教程
May 05 Python
Python中list列表的一些进阶使用方法介绍
Aug 15 Python
Python数据类型详解(四)字典:dict
May 12 Python
python正则分析nginx的访问日志
Jan 17 Python
回调函数的意义以及python实现实例
Jun 20 Python
Python处理session的方法整理
Aug 29 Python
利用python Selenium实现自动登陆京东签到领金币功能
Oct 31 Python
Django中的AutoField字段使用
May 18 Python
浅谈keras中的目标函数和优化函数MSE用法
Jun 10 Python
python中的split、rsplit、splitlines用法说明
Oct 23 Python
一文搞懂python异常处理、模块与包
Jun 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 反射机制实现动态代理的代码
2008/10/22 PHP
PHP Error与Logging函数的深入理解
2013/06/03 PHP
微信公众平台之快递查询功能用法实例
2015/04/14 PHP
php类的自动加载操作实例详解
2016/09/28 PHP
PHP在线打包下载功能示例
2016/10/15 PHP
php+redis实现注册、删除、编辑、分页、登录、关注等功能示例
2017/02/15 PHP
解决php 处理 form 表单提交多个 name 属性值相同的 input 标签问题
2017/05/11 PHP
php实现文件预览功能
2017/05/23 PHP
PHP 7安装调试工具Xdebug扩展的方法教程
2017/06/17 PHP
CodeIgniter框架钩子机制实现方法【hooks类】
2018/08/21 PHP
javascript 静态对象和构造函数的使用和公私问题
2010/03/02 Javascript
js/ajax跨越访问-jsonp的原理和实例(javascript和jquery实现代码)
2012/12/27 Javascript
jquery.autocomplete修改实现键盘上下键自动填充示例
2013/11/19 Javascript
Backbone.js框架中简单的View视图编写学习笔记
2016/02/14 Javascript
浅析在javascript中创建对象的各种模式
2016/05/06 Javascript
noty ? jQuery通知插件全面解析
2016/05/18 Javascript
浅析vue component 组件使用
2017/03/06 Javascript
JavaScript纯色二维码变成彩色二维码
2020/07/23 Javascript
node内置调试方法总结
2018/02/22 Javascript
VUE-Table上绑定Input通过render实现双向绑定数据的示例
2018/08/27 Javascript
axios封装,使用拦截器统一处理接口,超详细的教程(推荐)
2019/05/02 Javascript
vue调用本地摄像头实现拍照功能
2020/08/14 Javascript
angular *Ngif else用法详解
2020/12/15 Javascript
[58:23]LGD vs TNC 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/16 DOTA
深入解析Python编程中super关键字的用法
2016/06/24 Python
django使用django-apscheduler 实现定时任务的例子
2019/07/20 Python
用60行代码实现Python自动抢微信红包
2021/02/04 Python
什么样的创业计划书可行性高?
2014/02/01 职场文书
服装创业计划书范文
2014/02/05 职场文书
电焊工工作岗位职责
2014/02/06 职场文书
宣传部部长竞选演讲稿
2014/04/26 职场文书
敬老院活动总结
2014/04/28 职场文书
学校查摆问题整改措施
2014/09/28 职场文书
土建技术员岗位职责
2015/04/11 职场文书
篮球拉拉队口号
2015/12/25 职场文书
优秀创业计划书分享
2019/07/19 职场文书