C 我可以从线程函数关闭/终止正在运行的线程吗?

C 我可以从线程函数关闭/终止正在运行的线程吗?,c,C,我已经创建了一个线程,带有一个自定义线程函数。我在线程函数中有一个条件,如果它变为真,我想从线程函数内部关闭线程 有可能吗?您可以从线程返回,如果您想返回一些值,可以在该线程上使用 我假设您正在使用pthread作为线程函数laity。创建线程后,可以在自定义线程函数中调用()函数。在创建的线程中,仅从线程函数返回就足以关闭线程并释放与该线程相关的所有资源。对于PThreads,有两种方法可以干净地结束线程 使用拆下螺纹。结束它,然后打电话。要从线程本身内部查找线程的phtread id,请使

我已经创建了一个线程,带有一个自定义线程函数。我在线程函数中有一个条件,如果它变为真,我想从线程函数内部关闭线程


有可能吗?

您可以从线程返回,如果您想返回一些值,可以在该线程上使用

我假设您正在使用pthread作为线程函数laity。创建线程后,可以在自定义线程函数中调用()函数。在创建的线程中,仅从线程函数返回就足以关闭线程并释放与该线程相关的所有资源。

对于PThreads,有两种方法可以干净地结束线程

  • 使用拆下螺纹。结束它,然后打电话。要从线程本身内部查找线程的phtread id,请使用
  • 在创建结束的线程时,调用并对收到的pthread id进行另一个线程调用
    pthread\u join()
如果未能调用未通过调用分离的线程,该线程使用的资源将不会释放,即使在线程结束后也是如此。

这可能导致内存和/或其他系统资源不足。注意不要发生这种情况。


第三种方法是结束一个线程,即使用来取消它,这通常不是由线程本身初始化的(因为我可以使用上面描述的两种方法之一来结束自己),而是从另一个线程开始,在这种情况下,要结束的线程不知道这一点,并且不能被通知这样做


取消线程的需要应该很少出现,如果出现这种情况,人们可能会开始过度考虑程序的设计。

只需从函数返回?是的,如果条件为真,则向线程函数添加
return
语句。因此,如果添加return,则应关闭线程??我想我得到了u gays,返回线程func后,它将关闭线程…请使用
pthread\u exit()