首页 > 编程语言 >C++【多线程编程】之【初识线程创建】

C++【多线程编程】之【初识线程创建】

时间:2022-08-29 11:33:10浏览次数:86  
标签:函数 thread 创建 主线 C++ 线程 pthread 多线程

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.多线程同用一个入口函数时,线程共享变量怎么处理?

标签:函数,thread,创建,主线,C++,线程,pthread,多线程
From: https://www.cnblogs.com/black-worrior-2000/p/16634812.html

相关文章

  • 多线程
    原子性:一个操作或多个操作要么全部执行,且执行过程不会被任何因素打断,包括其他线程,要么全部不执行   每个线程都有自己独立的工作内存,从主内存中copy内容保存在工作......
  • java使用多种方式实现多线程及线程池的使用
    ​ 一、多线程实现了什么?为了解决负载均衡问题,充分利用CPU资源.为了提高CPU的使用率,采用多线程的方式去同时完成几件事情而不互相干扰.为了处理大量的IO操作时或处理......
  • 【c++】线程同步改错题 (互斥体)
     题目:#include<iostream>#include<windows.h>#include<tchar.h>//我想使用线程,让线程按我制定?的方案执行,但是总失败//起床-》吃饭-》工作-》回家-》起床HA......
  • ERROR: <bits/stdc++.h>, 'cstdalign' file not found, running C++17
    Modified 1year,1monthagoViewed 9ktimes4I'mtryingtorunapieceofcodein VisualStudioCode,onmacOSCatalina.Thecode:#include<bi......
  • c++学习案例:猜数字游戏
    最近在学习C++,遇到了一个案例:猜数字游戏案例要求:系统生成一个范围在1-100的随机整数,用户有5次猜数字的机会,当用户猜的数字大于或小于生成的值时进行提示,5次没猜对则失败,......
  • java多线程2
    我们知道,线程有五种生命周期:新建,就绪,运行,阻塞,死亡.在我们编写,运行代码的过程中,可能出现线程死锁,线程阻塞等问题,下面介绍线程产生这些问题的原因,及解决的方案,......
  • C++中 sort()和priority_queue()中的自定义比较
    C++sort/priority_queue自定义比较sort/priority_queue的自定义比较是有区别的:sort是自定义函数;priority_queue则是自定义结构体,结构体里面重载()实现自定义比较......
  • C++ 性能小测 1 二维数组的遍历效率
    C++性能小测1二维数组的遍历效率遍历二维数组时,常规思路是使用一个嵌套循环。一方面,由于CPU使用了分支预测技术,因此通常将循环次数最多循环的放在最内层。另一方面,由......
  • C++一些新的特性的理解(二)
    1C++11多线程thread重点:join和detach的使用场景thread构造函数参数绑定c函数绑定类函数线程封装基础类互斥锁mutexconditionnotify、waitlock_guard/unique_l......
  • python中的多线程与多进程
    线程概念:线程也叫轻量级进程,是操作系统能够进行运算调度的最小单位,它被包涵在进程之中,是进程中的实际运作单位。线程自己不拥有系统资源,只拥有一点儿在运行中必不可少的......