美文网首页
siege工具源码解析

siege工具源码解析

作者: 大林_3a76 | 来源:发表于2019-02-21 17:50 被阅读0次

    原理

    程序流程图[1]

    如果并发用户数为n,那么就会相应创建n个压测线程,每个线程模拟一个用户。除了压测线程之外,主函数会额外生成2个线程,我们暂且称之为计时线程和控制线程。计时线程用于等待一开始我们设定的压测时间,到时间后通过线程信号通知控制线程。随后控制线程通过改变与压测线程共享的压测停止标志位,并发送终止信号来实现压测线程的停止。每个压测线程都会从结构体CREW中读取压测任务,这些压测任务由主函数添加。每个线程的测试数据均会输出到client结构体数组中,最后由主函数统一收集结果,并打印在屏幕上。

    这一过程当中涉及的线程操作有条件变量,用于等待CREW中有压测任务到来,另外在计时线程中也用到了条件变量进行计时操作;互斥锁,用于改变CREW结构体成员的值时加锁保护数据;线程信号,用于线程间的相互通知;信号屏蔽字,用于将到来的异步信号用同步的方法去处理。《UNIX环境高级编程》。

    源码分析参照一下两篇文章。

    [1]Siege——多线程编程最佳实例

    [2]siege工具源码解析

    相关文章

      网友评论

          本文标题:siege工具源码解析

          本文链接:https://www.haomeiwen.com/subject/lkqryqtx.html