- 论坛徽章:
- 0
|
按照书中程序:
#include <iostream.h>
#include <pthread>
int sum,sum1,sum2;
void *task1(void *x)
{
for(int i=1;i<=100;i++)
{sum1=sum1+i;}
}
void *task2(void *x)
{
for(int j=1;j<=100;j++)
{sum2=sum2+j;}
}
int main()
{
pthread_t thread1,thread2;
pthread_create(&thread1,null,task1,null);
pthread_create(&thread2,null,task2,null);
pthread_join(thread1,null);
pthread_join(thread2,null);
sum=sum1+sum2;
cout<<sum<<endl;
}
运行能通过,但是如何把这个程序放在一个函数里运行呢,也就是说将两个循环累加和主函数内的线程声明放在一个函数内,这样该如何编译.
我用下面的方法运行出错:
#include <iostream.h>
#include <pthread>
int main()
{int sum1=0,sum2=0,sum;
pthread_t thread1,thread2;
int t;
void *q=t;
if(t=1)
{
for(int i=1;i<=100;i++)
{sum1=sum1+i;}
}
else if(t=2)
{
for(int j=1;j<=100;j++)
{sum2=sum2+j;}
}
pthread_create(&thread1,null,task1,null);
pthread_create(&thread2,null,task2,null);
pthread_join(thread1,null);
pthread_join(thread2,null);
sum=sum1+sum2;
cout<<sum<<endl;
}
无法运行,请问程序该怎么改才行? |
|