微信to-淘宝

 此h5只是验证lulu技术可行性,点击 http://vip100.ltd/Qt0vVjBc 相当于下图立即购买按钮 此h5只是验证lulu技术可行性,点击 https://m.tb.cn/h.UsUePG8 相当于下图立即购买按钮 [1] youjiangaoshan [2] lulu

Golang GMP调度

一、GMP “调度器” 的由来 单进程时代不需要调度器 早期的操作系统每个程序就是一个进程,直到一个程序运行完,才能进行下一个进程,就是 “单进程时代”.自动化控制中的PLC也是典型的单进程操作系统。 多进程 / 线程时代有了调度器需求 典型的操作系统unix/linux,对进程/线程进行了管理。 goroutine是比线程更轻量级的协程 goroutine是golang独有的概念,是为了更少的内存和cpu开销,比线程更加轻量,可以看作是线程的"son".很明显操作系统管理不了,所以出现了GMP. 二、GMP 定义 G=goroutine,M=mechine,P=processor. 三、GMP 模型 在 Go …

并发与并行

为了让程序更好地利用计算机资源,出现了进程/线程,以及并发模式和并行模式的概念。 一、进程和线程 A. 进程是程序在操作系统中的一次执行过程,系统进行资源分配和调度的一个独立单位。 B. 线程是进程的一个执行实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位。 C. 一个进程可以创建和撤销多个线程;同一个进程中的多个线程之间可以并发执行。 二、并发和并行 A. 多线程程序在一个核的cpu上运行,就是并发。 B. 多线程程序在多个核的cpu上运行,就是并行。 如图所示: 三、并发和并行的效率比较 如上图所示,假定任务A/B/C均衡分配,并行效率更高,因为并发切换线程需要cpu开销(图中树立的双虚线)。 但是为什么 …

Golang介绍

目前golang最新版本为1.17.3,经过12年的发展,生态已经成熟。 Go是一门工程语言 go诞生的初衷就是解决c/c++的各种弊端,提高生产力。 go编译速度极快,相对于c++/rust,10倍以上编译速度。 go fmt 代码格式化,代码风格统一。 自动垃圾搜集。简化c/c++的内存管理。 单一执行文件。 Go与其他语言的区别 Go vs Java: Go有内存垃圾自动处理,无虚拟机。 Go无对象编程的类class的概念,更强调struct(类似C). Go的对象继承是“鸭子原理",Java是“血缘关系". Go vs C: Go无宏定义.兼容C。基本上可以用C的风格来写Go代码。 Go vs C++: …

Golang代码结构

Go的设计思想是代码至上,依赖于代码而不是象其它语言依赖于编译好的库。尽管go的版本号已经到1.8.1了,但是还没没有好的package版本管理策略。1.6推出的vender只是稍微缓解了困境,只有寄希望与将来的1.9版本了。Go的代码结构不同于其它语言的地方,以java为对照: 代码文件位于src目录 假如GOPATH对应项目goprojectstruct,代码文件应该处于 goprojectstruct/src目录内. Go无class的概念 Go无对象编程的类class的概念。所以代码文件名称可以随意定义,但是一般位于package目录,一般与package同名,但是拆分成几个文件也是可以的。 代码文件/package …