MENU

分类 Linux开发 下的文章

GO读写CSV文件

下面这个例子是给别人写的,实现的功能是将当前目录下名为workbook.csv的文件,第6列加上系统当前时间,最终结果保存为result.csv。
注:忘记跳过第一行的表头了


阅读全文

Linux多线程:线程与信号

每个线程都有自己的信号屏蔽字,新的线程会继承创建它的线程的信号屏蔽字。但是信号处理程序是所有线程共享的,也就是说一个线程注册了一个信号处理程序,其他线程就得使用这个信号处理程序。

阅读全文

Go语言Channel

“网络,并发”是Go语言的两大feature。Go语言号称“互联网的C语言”,与使用传统的C语言相比,写一个Server所使用的代码更少,也更简单。写一个Server除了网络,另外就是并发,相对python等其它语言,Go对并发支持使得它有更好的性能。

Goroutine和channel是Go在“并发”方面两个核心feature。

Channel是goroutine之间进行通信的一种方式,它与Unix中的管道类似。

阅读全文

Linux线程同步:条件变量(pthread_cond_t)

什么是条件变量

先看一下APUE第三版对于条件变量的说明:

Condition variables are another synchronization mechanism available to threads. These synchronization objects provide a place for threads to rendezvous. When used with mutexes, condition variables allow threads to wait in a race-free way for arbitrary conditions to occur.
The condition itself is protected by a mutex. A thread must first lock the mutex to change the condition state. Other threads will not notice the change until they acquire the mutex, because the mutex must be locked to be able to evaluate the condition.


阅读全文