在編寫ats外掛程式的過程中,發現使用mktime會偶爾出現段錯誤, 經過網上調研,發現mktime等函式不是執行緒安全的, 於是編寫下面的**進行測試.
注意加鎖和不加鎖區別很大, 在mktime中使用多執行緒, 加上互斥鎖就沒有問題.
//gcc -g mktime_multithread.c -o mktime_multithread -lpthread -std=c99
//#include #include #include #include #include #include pthread_mutex_t mutex;
void* test_setenv(void *arg)
; for (int i = 0; i < 10000; i++)
return null;
}void* test_mktime(void* arg)
return null;
}int main(int argc, char* argv)
; pthread_create(&pt[0], null, test_setenv, null);
pthread_create(&pt[1], null, test_mktime, null);
pthread_join(pt[0], null);
pthread_join(pt[1], null);
pthread_mutex_destroy(&mutex);
return 0;
}
參考文獻
[1].
c 中使用多執行緒
using system using system.drawing using system.collections using system.componentmodel using system.windows.forms using system.data using system.threa...
c 中使用多執行緒
using system using system.drawing using system.collections using system.componentmodel using system.windows.forms using system.data using system.threa...
Delphi中使用多執行緒
這些天在indy的阻塞式socket模型的強迫下,開始在delphi中使用多執行緒。總結了一些經驗,儘管非常膚淺 1 對於vcl的控制項 大部分vcl的控制項的方法和屬性是不能保證執行緒安全的。我粗淺的理解執行緒安全為如果這個函式同時被兩個執行緒呼叫時,由於內部的指令不能保證按順序 即中間插入其他執...