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实现马耳可夫链算法实例分析
May 20 Python
简单了解Python下用于监视文件系统的pyinotify包
Nov 13 Python
Python实现在线暴力破解邮箱账号密码功能示例【测试可用】
Sep 06 Python
Python使用pickle模块存储数据报错解决示例代码
Jan 26 Python
tensorflow使用神经网络实现mnist分类
Sep 08 Python
python 发送和接收ActiveMQ消息的实例
Jan 30 Python
Django框架之DRF 基于mixins来封装的视图详解
Jul 23 Python
python做接口测试的必要性
Nov 20 Python
为什么黑客都用python(123个黑客必备的Python工具)
Jan 31 Python
Python编程快速上手——正则表达式查找功能案例分析
Feb 28 Python
Python pysnmp使用方法及代码实例
Aug 24 Python
python switch 实现多分支选择功能
Dec 21 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学习笔记之二
2011/01/17 PHP
php+jQuery.uploadify实现文件上传教程
2014/12/26 PHP
学习php设计模式 php实现状态模式
2015/12/07 PHP
PHP实现文件上传功能实例代码
2017/05/18 PHP
JS基于VML技术实现的五角星礼花效果代码
2015/10/26 Javascript
Nodejs从有门道无门菜鸟起飞必看教程
2016/07/20 NodeJs
JavaScript中 ES6 generator数据类型详解
2016/08/11 Javascript
nodejs multer实现文件上传与下载
2017/05/10 NodeJs
用ES6写全屏滚动插件的示例代码
2018/05/02 Javascript
轻量级富文本编辑器wangEditor结合vue使用方法示例
2018/10/10 Javascript
JS用最简单的方法实现四舍五入
2019/08/27 Javascript
vue实现鼠标移过出现下拉二级菜单功能
2019/12/12 Javascript
[52:52]DOTA2上海特级锦标赛C组资格赛#1 OG VS LGD第三局
2016/02/27 DOTA
用实例说明python的*args和**kwargs用法
2013/11/01 Python
跟老齐学Python之重回函数
2014/10/10 Python
Pycharm技巧之代码跳转该如何回退
2017/07/16 Python
python通过微信发送邮件实现电脑关机
2018/06/20 Python
python3.6利用pyinstall打包py为exe的操作实例
2018/10/31 Python
Python实现常见的回文字符串算法
2018/11/14 Python
对python3.4 字符串转16进制的实例详解
2019/06/12 Python
python使用原始套接字发送二层包(链路层帧)的方法
2019/07/22 Python
python zip,lambda,map函数代码实例
2020/04/04 Python
有原因的手表:Flex Watches
2019/03/23 全球购物
莱德杯高尔夫欧洲官方商店:Ryder Cup Shop
2019/08/14 全球购物
美国亚马逊旗下男装网站:East Dane(支持中文)
2019/09/25 全球购物
HomeAway英国:全球领先的度假租赁在线市场
2020/02/03 全球购物
高一地理教学反思
2014/01/18 职场文书
行政专员求职信范文
2014/05/03 职场文书
2014年党员承诺书范文
2014/05/20 职场文书
教室布置标语
2014/06/26 职场文书
青年教师师德演讲稿
2014/08/26 职场文书
车辆年检委托书范本
2014/10/14 职场文书
车间质检员岗位职责
2015/04/08 职场文书
大学迎新生欢迎词
2015/09/29 职场文书
CSS预处理框架——Stylus
2021/04/21 HTML / CSS
如何理解python接口自动化之logging日志模块
2021/06/15 Python