上一页 1 ··· 4 5 6 7 8 9 10 11 12 ··· 30 下一页
摘要: 在C和C++中,首先要把源文件编译成中间代码文件,在windows下就是obj文件,linux下就是.o文件:object file。这个动作叫做编译,然后再把大量的object file合成执行文件。这个动作叫做链接(link) 编译时,编译器需要的是语法的正确,函数与变量的声明的正确。对于后者, 阅读全文
posted @ 2018-12-09 10:02 red_leaf_412 阅读(3712) 评论(0) 推荐(0) 编辑
摘要: 单向channel: 单向通道可分为发送通道和接收通道。但是无论哪一种单向通道,都不应该出现在变量的声明中,假如初始化了这样一个变量 var uselessChan chan <- int =make(chan <- int,10) 这样一个变量该如何使用呢,这样一个只进不出的通道没有什么实际意义。 阅读全文
posted @ 2018-12-06 11:35 red_leaf_412 阅读(443) 评论(0) 推荐(0) 编辑
摘要: 前面介绍了goroutine的用法,如果有多个goroutine的话相互之间是如何传递数据和通信的呢。在C语言或者JAVA中,传输的方法包括共享内存,管道,信号。而在Go语言中,有了更方便的方法,就是channel。在同一时刻,仅有一个goroutine能向一个通道发送元素值,同时也仅有一个goro 阅读全文
posted @ 2018-12-04 09:55 red_leaf_412 阅读(802) 评论(0) 推荐(0) 编辑
摘要: Go语言最大的优势就在于并发编程。Go语言的关键字go就是开启并发编程也就是goroutine的唯一途径。一条go语句以为着一个函数或方法的并发执行。Go语句是由go关键字和表达式组成。比如下面的这种 go println(“hello go!”) 如果go关键字后面的是针对匿名函数的调用方式,那么 阅读全文
posted @ 2018-11-29 09:45 red_leaf_412 阅读(922) 评论(0) 推荐(0) 编辑
摘要: Posix消息队列可以认为是一个消息链表. 有足够写权限的线程可以往队列中放置消息, 有足够读权限的线程可以从队列中取走消息 在某个进程往一个队列写入消息前, 并不需要另外某个进程在该队列上等待消息的到达. 这跟管道和FIFO是相反的, 因为对于管道,FIFO来说, 除非读出者已经存在, 光有写入者 阅读全文
posted @ 2018-11-24 21:09 red_leaf_412 阅读(3747) 评论(0) 推荐(1) 编辑
摘要: 接口查询: 先来看如下的结构。结构体File实现了Read,Writer,Seek,Close的方法 type File struct{ } func (f *File) Read(buf []byte)(n int,err error){ return n,err } func (f *File) 阅读全文
posted @ 2018-11-23 09:31 red_leaf_412 阅读(186) 评论(0) 推荐(0) 编辑
摘要: 前面介绍的pipe属于匿名管道 管道的主要局限性正体现在它的特点上: 只支持单向数据流; 只能用于具有亲缘关系的进程之间; 没有名字; 管道的缓冲区是有限的(管道制存在于内存中,在管道创建时,为缓冲区分配一个页面大小); 管道所传送的是无格式字节流,这就要求管道的读出方和写入方必须事先约定好数据的格 阅读全文
posted @ 2018-10-27 19:43 red_leaf_412 阅读(3376) 评论(0) 推荐(0) 编辑
摘要: 比如有下面如下的代码,每个函数都需要判断debug的是否为True,而默认的debug为False def a(x,debug=False): if debug: print('calling a') def b(x,y,z,debug=False): if debug: print('callin 阅读全文
posted @ 2018-10-21 15:33 red_leaf_412 阅读(223) 评论(0) 推荐(0) 编辑
摘要: 我们在执行shell命令比如cat /etc/group | grep root的时候,通过管道的机制将cat /etc/group的结果传递给grep root,然后将结果显示出来 linux中提供了popen和pclose函数来达到这个目的。 FILE *popen(const char *co 阅读全文
posted @ 2018-10-20 16:22 red_leaf_412 阅读(648) 评论(0) 推荐(0) 编辑
摘要: 2在前面介绍过,进程之间交换信息的唯一途径就是传送打开的文件。可以经由fork或者exec来传送。这一章将介绍新的进程共享方式 每个进程各自有不同的用户地址空间,任何一个进程的全局变量在另一个进程中都看不到,所以进程之间要交换数据必须通过内核,在内核中开辟一块缓冲区,进程A把数据从用户空间拷到内核缓 阅读全文
posted @ 2018-10-14 10:39 red_leaf_412 阅读(5306) 评论(0) 推荐(1) 编辑
上一页 1 ··· 4 5 6 7 8 9 10 11 12 ··· 30 下一页