Linux c 執行緒入門

2021-07-17 03:26:59 字數 2929 閱讀 3341

#include #include #include #include #include void print_msg1(void);

void print_msg2(void);

void thread_create(pthread_t thread[2]);

int main()

void print_msg1(int fd)

//pthread_exit(&retval); }

void print_msg2(int fd)

//thread_exit(&retval);

}void thread_create(pthread_t thread[2])

第二組:

#include #include #include #include #define max 10

pthread_t thread[2];

pthread_mutex_t mut;

int number=0, i;

struct argument;

void *thread1(void *arg_thread)

printf("thread1 :主函式在等我完成任務嗎?\n");

pthread_exit(null); }

void *thread2(void *arg_thread)

printf("thread2, k = %d \n", arg->ts_port);

printf("thread2 :主函式在等我完成任務嗎?\n");

pthread_exit(null);}

void thread_wait(void)

if(thread[1] !=0) }

int main()

第三組:

//兩個函式互斥訪問乙個全域性變數

#include #include #include #include #define max 10

pthread_t thread[2];

pthread_mutex_t mut;

int number=0, i;

void print(char a, int num)

printf("\n");

return ;

}void *thread1()

printf("thread1 :主函式在等我完成任務嗎?\n");

pthread_exit(null); }

void *thread2()

printf("thread2 :主函式在等我完成任務嗎?\n");

pthread_exit(null);}

void thread_create(void)

void thread_wait(void)

if(thread[1] !=0) }

int main()

第四組:

fan給的乙個任務

#include #include #include #include #include #include //add

#include #include #include #include #include //only write

void test1()

}else

//calculate

double bandwidth ;

bandwidth = (count*1024*8)/arg->time;

printf("bandwidth to write = %lf bps\n",bandwidth);

}void read_thread(void *arg_thread);

struct argument *arg; // 接收傳遞過來的引數結構體

arg = ( struct argument * )arg_thread;

id = pthread_self();

printf("thread read id: %x\n",id);

stop = 0;

if(arg->fd != -1)

}else

//calculate

double bandwidth ;

bandwidth = (count*1024*8)/arg->time;

printf("bandwidth to read = %lf bps\n",bandwidth); }

//throughput test on firmware-loopback

void test4()

; unsigned int time = 0;

struct argument arg;

pthread_t thread[2];

printf("how many times do you want to send:");

scanf("%d", &time);

printf("time = [%d], size = [1024]\n", time);

fd= open("/dev/umts_ipc0", o_rdwr);

arg.fd = fd;

arg.time = time;

set_alarm(time);

pthread_create(&thread[0],null, (void *)(&read_thread), (void*)&arg);

pthread_create(&thread[1],null, (void *)(&write_thread), (void*)&arg);

sleep(1000);

close(fd);

}void main()

}

Linux (C)多執行緒學習(入門)

下面兩個仁兄總結非常好。總結比較好 比較具體 例子 主要學習乙個例子 test1.c created on 2016年7月26日 author andy cong 利用多執行緒與有名管道技術,實現兩個程序之間傳送即時訊息,實現聊天功能。mkfifo xx 新建乙個管道xx 兩個程式test1 tes...

Linux C程序與多執行緒入門 3 訊號

訊號是系統響應某些狀況而產生的事件,程序在接受到訊號時會採取相應的行動。訊號可以明確地由乙個程序產生傳送到另外乙個程序,用這種辦法傳遞資訊或協調操作行為。程序可以生成訊號 捕捉並相應訊號或遮蔽訊號。訊號的名稱是在標頭檔案signal.h裡定義。下面我列出一部分,如下 訊號名稱 說明 sigalrm ...

Linux C程序與多執行緒入門 3 訊號

概念 訊號是系統響應某些狀況而產生的事件,程序在接受到訊號時會採取相應的行動。非常像微控制器的中斷 訊號可以明確地由乙個程序產生傳送到另外乙個程序,用這種辦法傳遞資訊或協調操作行為。程序可以生成訊號 捕捉並相應訊號或遮蔽訊號。訊號的名稱 是在標頭檔案 signal.h 裡定義。下面我列出一部分,如下...