2 zxc134zxc zxc134zxc 于 2016.03.30 11:29 提问

求教 C++ 动态分配内存 与 线程的关系 以及线程的作用域

情况是 这样的

假如情况是 这样的

A类中

的 成员函数 A.a()中
我new 了一个 B类

而在这个B 类中 我 启动了 线程 (这个线程的 生命周期 由线程自己控制)

那么 现在我有一个问题 我必须在 A。a()函数中 等待 B类的线程结束吗

还是说 这个线程 可以按照我的设计思想 生命周期 自己控制?

他到底 会不会 随着 A类的 析构函数的 调用 而 死亡呢?

2个回答

fuchouzhe
fuchouzhe   2016.03.30 11:39

看你的具体编译器和操作系统,通常线程不会因为你的类销毁而销毁,但线程的句柄可能在你的类销毁后变得不可用。
若在你的线程中交互不多,线程自行结束不会对你的程序有影响。不过,若你的主类销毁后,主进程结束,但线程未结束就是问题了

lx624909677
lx624909677   Ds   Rxr 2016.03.30 16:19

线程的操作你可以理解成是一个while(1)的死循环,,比如有一个UI线程,用来控制程序界面显示的内容的,这个时候如果在绘制界面的时候好要做很复杂的算法运算,如果不开一个线程的话,UI线程就会卡死

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
线程的基本概念、线程的基本状态及状态之间的关系
线程的基本概念、线程的基本状态及状态之间的关系 基本概念:线程,即轻量级进程(LWP:Light Weight Process),是程序执行流的最小单元。一个标准的线程由线程ID、当前指令指针(PC),寄存器集合和堆栈组成。线程是进程中的一个实体,是被系统独立调度和分派的基本单位。线程不拥有系统资源,近拥有少量运行必须的资源。 基本状态:就绪、阻塞和运行三种基本状态。 就绪状
线程的基本概念,基本状态、状态之间的关系
基本概念 线程:是进程中的一个执行控制单元,执行路径       一个进程中至少有一个线程在负责控制程序的执行       一个进程中如果只有一个执行路径,这个程序称为单线程       一个进程中有多个执行路径时,这个程序成为多线程 一个线程是进程的一个顺序执行流。同类的多个线程共享一块内存空间和一组系统资源,线程本身有一个供程序执行时的堆栈。线程在切换时负荷小,因此,线程也被
阐述线程状态之间的关系
线程的状态分为:新建状态、就绪状态、运行状态、阻塞状态、死亡状态。我找到一张图片来描述线程的这5个状态,这样看起来更形象。 下面分别阐述。新建状态当使用new创建一个线程时,new Thread(r),这个时候,线程是处理新建状态。就绪状态当我们为新建状态的线程调用Thread.start()后,这个时候线程就处理就绪状态,线程这个时候可能并没有运行,它要等待CPU的时间片,等待系统的调度,等
Java多线程之线程的五种状态以及状态之间的关系
线程状态类型 新建状态(New):新创建了一个线程对象。 就绪状态(Runnable):也叫可运行状态。线程对象创建后,其他线程调用了该对象的start()方法。该状态的线程位于可运行线程池中,变得可运行,等待获取CPU的使用权。 运行状态(Running):就绪状态的线程获取了CPU,执行程序代码。 阻塞状态(Blocked):阻塞状态是线程因为某种原因放弃CPU使用权,暂时停止运行。直到线程进入
多线程--局部变量和成员变量作用域分析
补充知识: 多线程的实现可以采用两种方式: 1、继承Thread 2、实现Runnable接口 实现Runnable接口比继承Thread类所具有的优势: 1、适合多个相同的程序代码的线程去处理同一个资源 2、可以避免java中的单继承的限制 3、增加程序的健壮性,代码可以被多个线程共享,代码和数据独立。 所以最好采用实现Runnable接口这种方式,但是不论采用哪种方式,都要通
测试“单例模式”的作用域是线程还是进程
本文对经常听到的单例模式创建的对象,是在线程中单例还是在进程中单例,做了简单的探讨。 本文所用的方法是,在一个类中创建两个线程让他们分别得到一个单例对象,查看它们的是不是一个对象(通过对象的原始toString()方法查看相关的哈希码判断)。 测试的结果是,在一个进程(而不仅仅是同一个线程中)中,单例对象仅有一个。
C语言多线程编程-进程和线程的基本概念
进程,线程,基本概念
C#中的多线程——线程状态
图1: 线程状态关系图 你可以通过ThreadState属性获取线程的执行状态。图1将ThreadState列举为“层”。ThreadState被设计的很恐怖,它以按位计算的方式组合三种状态“层”,每种状态层的成员它们间都是互斥的,下面是所有的三种状态“层”: 运行 (running) / 阻止 (blocking) / 终止 (aborting) 状态(图1显示) 后台 (back
Java线程的5种状态及状态之间转换
Java中的线程的生命周期大体可分为5种状态。 1. 新建(NEW):新创建了一个线程对象。 2. 可运行(RUNNABLE):线程对象创建后,其他线程(比如main线程)调用了该对象的start()方法。该状态的线程位于可运行线程池中,等待被线程调度选中,获取cpu 的使用权 。 3. 运行(RUNNING):可运行状态(runnable)的线程获得了cpu 时间片(times
进程、线程与处理器的关系和调度
认真看完这个帖子  了解进程线程处理器等相关工作方式 首先:CPU调度的是线程  进程是拥有资源的基本单位 (1)进程的概念(Dijkstra) 进程是可并发执行的程序在某个数据集合上的一次计算活动,也是操作系统进行资源分配和调度的基本单位。 (2)进程与程序的联系与区别 ① 程序是指令的有序集合,其本身没有任何运行的含义,是一个静态的概念。而进程是程序在处理机上