linux posix pthread 中通常会使用到多线程并发运行多个函数实体的情况,osip2 中也提供相同的功能。
大体的流程便是: 声明并实现函数,创建匹配的函数指针,将函数指针指向函数实体,
传入函数指针,传入函数运行需要的参数列表到线程方法中(pthread : thread , osip:osip_create_thread ) , 运行线程。
本文介绍的是如何将 osip2 中线程的创建、运行、空间释放封装到一个类中。
这样在需要使用并发运行多个函数的时候,只需要创建一个类实例,通过该类实例中的成员方法调用便可执行上述的流程。
在这里使用的线程并发方式是 join ,线程的并发方式有: join , detach
简单的举例解释,比如说现有 3 个线程 main 函数,main 函数中另起的两个线程 A , B
join ------->main 函数会等到 A, B 线程运行结束之后,在终止自己这一主线程
detach----> main 函数的结束不受 A, B线程执行结束所影响
适用场景:
join------>(a = b + c , b = 1+2 , c = 2+3 | main running (a=b+c) , A running (b = 1+2) , B running (c = 2+3))
这种情况下, main 这一主线程中需要执行计算是需要线程 A 和 线程 B 执行结果的,也就是说有时序性的,并发方式使用join
detach-----> (a= 1+1 , b= 1+