<Go语言编程>一书介绍了libtask库,可以认为这个库等同于go的底层goroutine实现. libtask库的channel的数据结构如下: struct Alt { Channel *c; void *v; unsigned int op; Task *task; Alt *xalt; }; struct Altarray { Alt **a; unsigned int n; unsigned int m; }; struct Channel { unsigned int bufsi…
学习golang的时候libtask库的代码是一定要看的,需要深入理解chan和携程的运行机制,下面就结合libtask的源码说明下运行原理,如果理解的有偏差欢迎指正 下面是libtask中Channel的结构 struct Alt { Channel *c; void *v; unsigned int op; Task *task; Alt *xalt; }; struct Altarray { Alt **a; unsigned int n; unsigned int m; }; struc…
1.说明 本文对LDA原始论文的作者所提供的C代码中LDA的主要逻辑部分做凝视,原代码可在这里下载到:https://github.com/Blei-Lab/lda-c 这份代码实现论文<Latent Dirichlet Allocation>中介绍的LDA模型.用变分EM算法求解參数. 为了使代码在vs2013中执行.做了一些微小修改,但不影响原代码的逻辑. vs2013project可在我的资源中下载: http://download.csdn.net/detail/happyer88/8…
闭包是主流编程语言中的一种通用技术,常常和函数式编程进行强强联合,本文主要是介绍 Go 语言中什么是闭包以及怎么理解闭包. 如果读者对于 Go 语言的闭包还不是特别清楚的话,可以参考上一篇文章 go 学习笔记之仅仅需要一个示例就能讲清楚什么闭包. 或者也可以直接无视,因为接下来会回顾一下前情概要,现在你准备好了吗? Go ! 斐波那契数列见闭包 不论是 Go 官网还是网上其他讲解闭包的相关教程,总能看到斐波那契数列的身影,足以说明该示例的经典! 斐波那契数列(Fibonacci sequence…
  UNIT 8  Processes and the Scheduler 进程与调度 学习目标 A. CPU cache 与Service time之间的关系 B. 分析应用程序使用CPU cache时的情况(CPU使用率与CPU cache命中率) C. 抢占 (根据优先级抢占) D 根据进程优先级顺序进行调度与排序 E. 监控内核和进程的性能   8.1    Characterizing prosess states 进程状态  查看进程状态: ps axo pid,comm,stat…
Java NIO 的核心组成部分: 1.Channels 2.Buffers 3.Selectors 我们首先来学习Channels(java.nio.channels): 通道 1)通道基础 通道(Channel)是java.nio的第二个主要创新.它们既不是一个扩展也不是一项增强,而是全新.极好的Java I/O示例,提供与I/O服务的直接连接.Channel用于在字节缓冲区和位于通道另一侧的实体(通常是一个文件或套接字)之间有效地传输数据. channel的jdk源码: package j…
Schedulers, threading and testing 本文的主题为调度器,多线程以及测试. RxJava操作符(六)Utility SubscribeOn / ObserveOn SubscribeOn / ObserveOn 用来指定数据流和观察者所运行的线程. 这里数据流的运行是指数据流创建,转化,发送数据以及最后销毁的全过程. 这里观察者的运行是指数据流发送数据和观察者观察数据的过程. SubscribeOn / ObserveOn 指定线程是通过指定调度器来完成的. Sub…
在init方法中增加下边的代码,建议使用schedule函数,而不是scheduleUpdate函数,因为,后者默认是调用update函数,在如果有多个函数需要调度时,不是很灵活. auto label = LabelTTF::create(); label->setTag(); // position the label on the center of the screen label->setPosition(Vec2(origin.x + visibleSize.width/, ori…
Go lang Learn Note 标签(空格分隔): Go Go安装和Go目录 设置环境变量GOROOT和GOPATH,前者是go的安装目录,后者是开发工作目录.go get包只会将包下载到第一个工作目录(多个GOPATH的时候). Go语言命令行工具介绍 go build 用于编译源码文件.代码包.李赖堡 go run 可以编译并运行go源码文件 go get 主要是用来动态获取远程代码包 GoLand编辑器选择和配置 GoLand下载 一.GO语言基础语法 1. 关键字.标识符 GO中保…
现对z-stack里几个网络参数的设置以及如何获取总结一下.信道配置:Zigbee在3个频段定义了27个物理信道:868MHz频段中定义了1个20Kb/s信道,915MHz频段中定义了10个40Kb/s信道,信道间隔为2MHz,2.4GHz频段上定义了16个250Kb/s信道,信道间隔为5MHz.信道编号 Z-stack中可以在f8wConfig.cfg里设置信道,相关部分如下:/* Default channel isChannel 11 - 0x0B */// Channels are de…