スレッドのテスト

test.cの:

書式#include <pthread.hの>
書式#include <stdio.hに>
unsigned int型COUNT1、COUNT2。

void *型THD1(void *型lpparam) // 1スレッド
 {
             のprintf( "初回にTHD1 \ N-を入力してください");
             SLEEP(1);あなたがスレッドを作成する機会を持つことができるように// MAIN睡眠を2

             (1)一方
             {
                COUNT1 ++。
                printf( "THD1プリエンプト%D \ n"は、COUNT1)。
                睡眠(1)。
             }

}

void *型THD2(void *型lpparam)//スレッド2

{
             のprintf( "THD2初回を入力\ N-");
             SLEEP(3); //スレッドの2秒後に、次にCPUプリエンプション

             一方、(1){
                           COUNT2 ++;
                           のprintf( "%D THD2プリエンプト\ N-"、COUNT2); //これは、理想的な出力結果である
                           SLEEP(1);
             }

}

int型create_fifo_thd(無効(*ルーチン)(void *型のPARAM)、int型dwPriority)

{

             pthread_attr_tたAttr;

             pthread_attr_init(&のAttr);

             pthread_attr_setschedpolicy(&のAttr、SCHED_FIFO)。

             pthread_attr_setdetachstate(&のAttr、PTHREAD_CREATE_DETACHED)。

             構造体sched_pa​​ramのsch_param。

             sch_param.sched_priority = dwPriority。

             pthread_attr_setschedparam(&たAttr、&sch_param)。

             がpthread_t PID = 0。

             pthread_create(&PID、&のAttr、ルーチン、0);

             pthread_attr_destroy(&のAttr);

             リターンPID;

}

メインint型()

{

             int型RET = 0;

             RET = create_fifo_thd(thd1,11); //低優先度
             (0 == RET)リターン0 。

             RET = create_fifo_thd(thd2,12); //高い優先順位
             であれば(0 == RET)0を返します 。

             printf( "のpthread_create OK \ nは!");

             (1)一方、

}
************************************************* ************************************************** ****************************************

 テスト-lpthread test.cの-o GCC

リリース9件のオリジナルの記事 ウォンの賞賛1 ビュー6690

おすすめ

転載: blog.csdn.net/u014426028/article/details/103326290