⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 thread.c

📁 oci的源码,可以在任何平台上编译,相当方便实用
💻 C
字号:
#include "ocilib.h"

#define MAX_THREADS 50


void key_cleanup(void *str)
{
    free(str);
}

void worker(OCI_Thread *thread, void *data)
{
   const void *id = OCI_HandleGetThreadID(thread);
   char *str = malloc(50);

   sprintf(str, "thread %p !\n", id);

   OCI_ThreadKeySetValue("ID", str);

   /* ... do some more processing here... */

   str = OCI_ThreadKeyGetValue("ID");

   printf(str);
}

int main(void)
{
    OCI_Thread *th[MAX_THREADS];
    int i;

    if (!OCI_Initialize(NULL, NULL, OCI_ENV_DEFAULT | OCI_ENV_THREADED))
        return EXIT_FAILURE;

    OCI_ThreadKeyCreate("ID", key_cleanup);

     /* create threads */

    for (i = 0; i < MAX_THREADS; i++)
    {
        th[i] = OCI_ThreadCreate();
        OCI_ThreadRun(th[i], worker, NULL);
    }
  
    /* wait for threads and cleanup */

    for (i = 0; i < MAX_THREADS; i++)
    {
       OCI_ThreadJoin(th[i]);
       OCI_ThreadFree(th[i]);
    }

    OCI_Cleanup();
 
    return EXIT_SUCCESS;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -