Home avatar

搬砖程序员带你飞

砖搬得多了,就能盖楼

Go 语言并发模式详解

Go 语言以其强大的并发特性而闻名。本文将详细介绍 Go 语言中常见的并发模式,帮助你更好地理解和使用 Go 的并发特性。

1. 基本的 Goroutine 和 Channel 模式

生产者-消费者模式是并发编程中最基础和最常用的模式之一。这种模式通过将数据生产和消费解耦,可以更好地控制数据流和处理速度。

编译依赖问题的一个坑

记录一次gcc,编译静态库依赖顺序导致编译失败的问题。

假设有个cpp,依赖两个静态库。静态库代码如下:

1
2
3
4
5
// a.cpp
// g++ -c a.cpp
// ar cr a.a a.o
// 
void a() {}
1
2
3
4
5
// b.cpp 依赖 a.cpp
// g++ -c b.cpp
// ar cr b.a b.o
extern void a();
void b() {a();}
1
2
3
4
5
6
7
8
// main.cpp 依赖 b.cpp 
extern void b();
int main()
{
    b(); // 调用b.cpp中的b()
    return 0;

}

针对main.cpp 的编译,就会出现问题。 在GNU 的g++ 版本中,必须要使用 g++ main.cpp b.a a.a ; 如果使用 g++ main.cpp a.a b.a 会报如下错误:

0%