1、Fibonacci序列为0,1,1,2,3……,通常,……
#include <stdio.h>
#include <stdlib.h>
#include <pthread.h>
#include <unistd.h>
int arr_fib[100];
int fib(int n)
{
if(n==0)
return 0;
else if(n==1||n==2)
return 1;
else
return(fib(n-1)+fib(n-2));
}
void *print_fib(void *n)
{
int i;
int fib_num;
for(i=0;i<n;i++)
{
fib_num=fib(i+1);
arr_fib[i]=fib_num;
}
}
int main()
{
pthread_t tid;
int n,err;
printf("请输入要产生的Fibonacci序列的n:");
scanf("%d",&n);
err=pthread_create(&tid,NULL,print_fib,(void*)n);
if(err!=0)
printf("创建线程失败");
pthread_join(tid,NULL);
int i;
for(i=0;i<n;i++)
printf("%d ",arr_fib[i]);
exit(0);
}
4、现有4个线程R1,R2,W1和W2,它们共享可以存放一个数的缓冲器B。线程R1每次把从键盘上投入的一个数存放到缓冲器B中,供线程W1打印输出;线程R2每次从磁盘上读一个数放到缓冲器B中,供线程W2打印输出。当一个线程把数