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_paramの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