mtdm.c

来自「这是一个简单的如何在uClinux下编译和运行多线程函数的例子」· C语言 代码 · 共 45 行

C
45
字号
#include <stdio.h>#include <unistd.h>#include <signal.h>#include <pthread.h>#define THREADS 4#define LOOPTIME 5pthread_t t[THREADS];int cnt;int loop;pthread_mutex_t m = PTHREAD_MUTEX_INITIALIZER;void* thread_code(void* arg) {  while(loop) {    pthread_mutex_lock(&m);    cnt++;    pthread_mutex_unlock(&m);    sched_yield();  };  pthread_exit(0);  return 0;};int main(int argc, char* argv[]) {  int i;#ifdef FSUTHREADS  pthread_init();#endif  loop=1;  for(i=0;i<THREADS;i++) pthread_create(&t[i],0,thread_code,(void*)i);  for(i=0;i<LOOPTIME;i++) sleep(1);  loop=0;  for(i=0;i<THREADS;i++) pthread_join(t[i],0);  printf("total runs: %i\n",cnt/LOOPTIME);  return 0;};

⌨️ 快捷键说明

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