gegege123gege 2016-06-15 03:17 采纳率: 0%
浏览 907

两个相关线程,两者之间的有着数据的关联,如何协调两者之间的关系,是它们顺利运行

线程1 运行函数func1(),线程2运行func2().
func1()
{
for( ... ){
生成一个随机数 a(全局变量);

            pthread_cond_signal( func2);                                    //唤醒func2
            使用生成的随机数 a 进行相关计算,结果为 A1;
            pthread_cond_wait (A2);                                        //等待func2的结果 A2

            等待func2的结果 A2,与A1比较大小;
    }

}

func2()
{
do{
pthread_cond_wait ( a ); //等待func1生成随机数 a;

            等待func1生成一个新的 a ;
            进行运算,生成结果A2;

            pthread_cond_signal ( func2)          //唤醒func1,进行比较
    }

}
两个线程的大体含义是 线程1 生成一个a值,线程1,2都需要该值进行比较。

两个函数内,我使用了pthread_cond_wait()进行协调运行,单是pthread_cond_signal()经常空操作,程序不能正常运行。

各位大神有没有更好的方法来协调两个函数之间的运行。任何方法都可以。

  • 写回答

1条回答 默认 最新

报告相同问题?

悬赏问题

  • ¥15 安装svn网络有问题怎么办
  • ¥15 vue2登录调用后端接口如何实现
  • ¥65 永磁型步进电机PID算法
  • ¥15 sqlite 附加(attach database)加密数据库时,返回26是什么原因呢?
  • ¥88 找成都本地经验丰富懂小程序开发的技术大咖
  • ¥15 如何处理复杂数据表格的除法运算
  • ¥15 如何用stc8h1k08的片子做485数据透传的功能?(关键词-串口)
  • ¥15 有兄弟姐妹会用word插图功能制作类似citespace的图片吗?
  • ¥15 latex怎么处理论文引理引用参考文献
  • ¥15 请教:如何用postman调用本地虚拟机区块链接上的合约?