LINUX 线程启动回调函数
生活随笔
收集整理的這篇文章主要介紹了
LINUX 线程启动回调函数
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1、注冊回調函數指針數組
static void *(*p_RegisterCallback[32])(void* arg); //因為要在線程中調用回調函數,所以函數類型要與pthread_create參數類型一致 typedef void *(*Callback)(void *argv);2、注冊回調函數
void RegisterCallback(int i,Callback fn) {p_RegisterCallback[i]=fn; }3、調用回調函數
int i=0; p_RegisterCallback[i](&i);應用:(線程中調用回調函數)
pthread_t tid[32]; int i=0;void *(Callback0)(void *argv) {int tmp = *(int *)argv;RegisterCallback_temp0+=(tmp+1);return nullptr; } main {RegisterCallback(0,Callback0);if(....){pthread_create(&tid[i],nullptr,p_RegisterCallback[i],&i]);} }//注意:如果回調函數中使用參數i,i不能是臨時變量,否則回調函數中&i可能得到一個意外的值。感謝大神的博客:
函數指針與指針函數:從pthread_create說起
總結
以上是生活随笔為你收集整理的LINUX 线程启动回调函数的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: eeglab绘制脑电头皮图、通道对应光谱
- 下一篇: linux命令行启动向日葵无法编辑,向日