杨泽彬的神秘商店

博客园 首页 新随笔 联系 订阅 管理

1.线程创建函数调用
pthread_create(句柄、参数、函数入口,函数入口的实参)

int pthread_create(....)

cpp thread类:
thread类的创建方法比较简便。但也有很多问题需要考虑

  • 函数指针创建线程
    thread (函数入口,函数参数) 入口函数的参数设置要注意安全
  • 类对象创建线程

thread 创建线程的一些细节说明:[]:https://blog.csdn.net/qq_42147969/article/details/118325905

2.在创建部分,pthread、thread的区别是:
虽说thread是基于pthread封装的,但是thread 是作为一个类/对象来说。
thread 可以支持很多c++特殊类型的进程创建。 功能很强大

2.创建线程后 线程会自动开启吗?
会的,在pthread_create之后 线程自动运行。

3.创建线程后,子线程与主线程的联系是什么?
c++中,创建了thread 子线程后,主线程与子线程已经联系在了一起。如果在主线程中不调用join(),使子线程归入主线程中(主线程阻塞等待子线程完成并回收),那么当主线程结束时便会报错(程序崩溃)。

除了join之外,我们还能通过datach 断开二者的联系。这样子线程就变为守护线程,不过守护线程会带来不少新问题。

4.pthread 的线程函数有什么要注意的?

  • pthread 的返回值和参数都是void . 因此有些东西需要注意。
    返回值 应该为return NULL;
    传入参数:void
    传进来之后 要使用还得专门做一个强制类型转换保证指针的使用。

在外部实参传入时,不能传值 只能传指针,因此有些需要先取值,然后做(void *) 的强制类型转换。

5.多线程同用一个入口函数时,线程共享变量怎么处理?

6.线程函数传入的参数可以是局部变量吗?
不能,会访问野指针,程序崩溃。

posted on 2022-08-29 11:30  快乐过了阈值  阅读(107)  评论(0)    收藏  举报