扫描二维码下载沐宇APP

沐宇

微信扫码使用沐宇小程序

沐宇

Linux涓璸thread_detach鍑芥暟鎬庝箞浣跨敤

扬州沐宇科技
2023-12-11 16:51:51
linux

鍦↙inux涓紝pthread_detach鍑芥暟鐢ㄤ簬灏嗕竴涓嚎绋嬪垎绂伙紝浣垮叾鍦ㄧ粓姝㈡椂鑷姩閲婃斁璧勬簮锛屼笉闇€瑕佸叾浠栫嚎绋嬭皟鐢╬thread_join鍑芥暟鏉ヨ幏鍙栫嚎绋嬬殑杩斿洖鍊兼垨鑰呯姸鎬併€?/p>

浣跨敤pthread_detach鍑芥暟鐨勬柟娉曞涓嬶細

  1. 鍦ㄥ垱寤虹嚎绋嬫椂锛岃缃嚎绋嬬殑灞炴€т负鍒嗙鐘舵€侊紝鍙互浣跨敤pthread_attr_setdetachstate鍑芥暟鏉ヨ缃嚎绋嬪睘鎬э紝灏哾etachstate鍙傛暟璁剧疆涓篜THREAD_CREATE_DETACHED銆?/li>

涓嬮潰鏄竴涓ず渚嬩唬鐮侊細

#include <pthread.h>
#include <stdio.h>
#include <unistd.h>

void *thread_function(void *arg)
{
    // 绾跨▼鐨勫伐浣滃唴瀹?/span>
    sleep(3);
    printf("Thread function finished.\n");
    return NULL;
}

int main()
{
    pthread_t thread_id;
    pthread_attr_t attr;

    // 鍒濆鍖栫嚎绋嬪睘鎬?/span>
    pthread_attr_init(&attr);
    // 璁剧疆绾跨▼灞炴€т负鍒嗙鐘舵€?/span>
    pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_DETACHED);

    // 鍒涘缓绾跨▼
    pthread_create(&thread_id, &attr, thread_function, NULL);

    // 閿€姣佺嚎绋嬪睘鎬?/span>
    pthread_attr_destroy(&attr);

    // 涓荤嚎绋嬬殑宸ヤ綔鍐呭
    printf("Main thread finished.\n");

    return 0;
}

鍦ㄨ繖涓緥瀛愪腑锛屾垜浠鍏堝垵濮嬪寲绾跨▼灞炴€ttr锛岀劧鍚庝娇鐢╬thread_attr_setdetachstate鍑芥暟灏嗙嚎绋嬪睘鎬ц缃负鍒嗙鐘舵€併€傛帴涓嬫潵锛屼娇鐢╬thread_create鍑芥暟鍒涘缓涓€涓柊鐨勭嚎绋嬶紝骞跺皢绾跨▼灞炴€ttr浣滀负鍙傛暟浼犻€掔粰pthread_create銆傛渶鍚庯紝浣跨敤pthread_attr_destroy鍑芥暟閿€姣佺嚎绋嬪睘鎬с€?/p>

  1. 鍙︿竴绉嶆柟娉曟槸鍦ㄧ嚎绋嬪唴閮ㄤ娇鐢╬thread_detach鍑芥暟灏嗙嚎绋嬪垎绂汇€?/li>

涓嬮潰鏄竴涓ず渚嬩唬鐮侊細

#include <pthread.h>
#include <stdio.h>
#include <unistd.h>

void *thread_function(void *arg)
{
    // 绾跨▼鐨勫伐浣滃唴瀹?/span>
    sleep(3);
    printf("Thread function finished.\n");
    return NULL;
}

int main()
{
    pthread_t thread_id;

    // 鍒涘缓绾跨▼
    pthread_create(&thread_id, NULL, thread_function, NULL);

    // 鍒嗙绾跨▼
    pthread_detach(thread_id);

    // 涓荤嚎绋嬬殑宸ヤ綔鍐呭
    printf("Main thread finished.\n");

    return 0;
}

鍦ㄨ繖涓緥瀛愪腑锛屾垜浠娇鐢╬thread_create鍑芥暟鍒涘缓涓€涓柊鐨勭嚎绋嬶紝骞跺皢绾跨▼ID瀛樺偍鍦╰hread_id鍙橀噺涓€傜劧鍚庯紝浣跨敤pthread_detach鍑芥暟灏嗚绾跨▼鍒嗙銆?/p>

鏃犺浣跨敤鍝鏂规硶锛屼竴鏃︾嚎绋嬭鍒嗙锛屽畠灏嗗湪缁堟鏃惰嚜鍔ㄩ噴鏀捐祫婧愶紝涓嶅啀闇€瑕佸叾浠栫嚎绋嬭皟鐢╬thread_join鍑芥暟鏉ヨ幏鍙栫嚎绋嬬殑杩斿洖鍊兼垨鐘舵€併€?/p>

扫码添加客服微信