sem_t的使用步骤

sem_t的使用步骤,第1张

1.声明信号量sem_t sem1

2.初始化信号量sem_init(&sem1,0,1)

3.sem_post和sem_wait函数配合使用来达到线程同步

4.释放信号量int sem_destroy (sem_t *sem1)

它的原型为: extern int sem_init __P ((sem_t *__sem, int __pshared, unsigned int __value))

头文件为: #include <semaphore.h>

sem为指向信号量结构的一个指针;

pshared不为0时此信号量在进程间共享,否则只能为当前进程的所有线程共享;

value给出了信号量的初始值。

函数sem_post( sem_t *sem )用来增加信号量的值当有线程阻塞在这个信号量上时,调用这个函数会使其中的一个线程不再阻塞,选择机制同样是由线程的调度策略决定的。

函数sem_wait( sem_t *sem )被用来阻塞当前线程直到信号量sem的值大于0,解除阻塞后将sem的值减一,表明公共资源经使用后减少。

函数sem_trywait ( sem_t *sem )是函数sem_wait()的非阻塞版本,它直接将信号量sem的值减一。

函数sem_destroy(sem_t *sem)用来释放信号量sem。

本篇记录下用stata进行中介分析,其中,自变量,中介变量和因变量均为连续变量。

中介分析可以用命令 sem ,即进行结构方程模型也是用这个命令,只不过中介分析没有测量模型而已。

其中,自变量(X)为 EC ,中介变量(M)为 SDO ,因变量(Y)为 forei 。

结果如下,可以看到,报告的是标准化系数,X到M结果显著,M到Y显著,控制M之后,X到Y不显著了。

对直接效应,间接效应和总效应进行估计的结果如下,最后一列为标准化系数,但是,没有相应的z值,和95%CI

使用命令 estat stdize 可以得到不同路径相应的标准化统计量。

路径a,b和c’的结果如下:

路径ab和总效应结果如下:

此外,还有个命令可以直接报告中介效应结果,即 medsem

结果如下,报告了两种检验中介效应的方法,以及中介效应是否存在的结论。

通过命令 help medsem 后可以详细了解该命令。

除了上述提到的两种检验中介效应的方法外,还有bootstrap法。

具体介绍可参见文献:

Fritz, M. S., &MacKinnon, D. P. (2007). Required Sample Size to Detect the Mediated Effect. Psychological Science, 18 (3), 233-239.

stata的实现方式是:

抽取5000个样本,时间有些长,得等会儿……结果如下:


欢迎分享,转载请注明来源:夏雨云

原文地址:https://www.xiayuyun.com/zonghe/334291.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-04
下一篇2023-05-04

发表评论

登录后才能评论

评论列表(0条)

    保存