schedlock.c

来自「模拟嵌入式硬件平台的软件源代码」· C语言 代码 · 共 45 行

C
45
字号
#include <stdio.h>#include <unistd.h>#include <stdlib.h>#include <pthread.h>void *thread_function(void *arg); /* Pointer to function executed by each thread */#define NUM 5int args[NUM+1];int main() {    int res;    pthread_t threads[NUM];    void *thread_result;    int i;    for (i = 0; i < NUM; i++)      {	args[i] = 1;	res = pthread_create(&threads[i], NULL, thread_function, (void *)i);      }    /* schedlock.exp: last thread start.  */    args[i] = 1;    thread_function ((void *) i);    exit(EXIT_SUCCESS);}void *thread_function(void *arg) {    int my_number = (int) arg;    int *myp = &args[my_number];    /* Don't run forever.  Run just short of it :)  */    while (*myp > 0)      {	/* schedlock.exp: main loop.  */	(*myp) ++;      }    pthread_exit(NULL);}

⌨️ 快捷键说明

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