问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

linux下C++的文件链接问题

发布网友 发布时间:2022-05-06 10:27

我来回答

3个回答

热心网友 时间:2022-06-29 18:53

异常情景如下:

query1和query2使用同一个Connection进行query查询,设thread_1调用query1,thread_2调用query2,当两个线程不加*的时候,会出现串数据的情况。

即:query1读取到了query2的结果。

更严重,有可能导致mysql_query()抛出异常

解决办法,自阿query1(),query2()的入口和出口加上信号量semaphore,代码结构如下:

1、声明semaphore并初始化

sem_init(&sem,0,1);

第一个参数是信号量的指针,第二个参数可以设置为0表示不参与进程同步,第三个参数表示资源可用的数量(实际上semaphore可以理解为一个int量),这里第一次必须要能够查询只不过共享了唯一一个Connection,所以设置为1

2、对于query1()和query()2的改造。
如下:

void query1()
{
//等待信号量,当为1的时候,减为0,并继续执行;否则阻塞
sem_wait(&sem);

//执行mysql_query(...)

//释放信号量,信号量加1
sem_post()
}

query2的改造同query1()

经过了上面的改造,query1和query2就是线程安全的了,任何线程都可以不加*的调用这两个函数了!

3、性能下降

使用信号量同步一定会导致性能下降,下面是一些测试参数。

前提:query1和query2各查询10000次

没有使用信号量之前:

450000

使用了信号量之后

490000

还是可以接受的,毕竟换来了安全。

热心网友 时间:2022-06-29 18:54

方法有两种:
一、手动连接:
sh$ g++ -c twofile2.cpp
sh$ g++ -c twofile1.cpp
sh$ ls
twofile2.o twofile2.o
sh$ g++ twofile2.o twofile2.o -o mian
二、编写Makefile
这里我就不解释了,感兴趣自己去看
main:
g++ -c twofile2.cpp twofile1.cpp
g++ twofile2.o twofile2.o -o mian
rm twofile2.o twofile2.o

热心网友 时间:2022-06-29 18:54

方法有两种:
一、手动连接:
sh$ g++ -c twofile2.cpp
sh$ g++ -c twofile1.cpp
sh$ ls
twofile2.o twofile2.o
sh$ g++ twofile2.o twofile2.o -o mian
二、编写Makefile
这里我就不解释了,感兴趣自己去看
main:
g++ -c twofile2.cpp twofile1.cpp
g++ twofile2.o twofile2.o -o mian
rm twofile2.o twofile2.o追问前面几句我知道是编译以及查看文件,但是最后一句sh$ g++ twofile2.o twofile2.o -o mian是什么意思就看不怎么懂了,能帮忙解释一下么,linux和C++都是新手,谢谢~!
刚看了一下,你把两个都输入成twofile2.o了,只要把其中一个改成twofile1.o就好了,谢谢啦!

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
找专业防水队做完还漏水怎么维权 法院会受理房屋漏水造成的纠纷吗? 巴西龟最长活多久,家养!!! 养胃的药最好的是什么啊 婴儿积食发烧不愿吃药怎么办 板门穴位在哪个部位 手机设置放偷看的方法? 凝结水回收器生产厂家? 个人账户养老金预测公式:现有5万元,缴费20年,能领多少钱? 临沂比较有名的男装品牌 在Linux中运行cpp.sh,为什么说command not found 数字2309代表爱情意思 我迟早会让你承认你是我老婆 用数字怎么说? 怎么通过实名认证找回QQ 哪位可以提供绩效考核,和员工手册! 员工手册中的奖罚制度和绩效考核制度有冲突怎么办? 郭文煊的参加比赛 你曾经有过哪些超级失败的演讲? 跪求校园搞笑励志小品(大神们帮帮忙) 超级大学生 赵本山力挺校园小品王 房子台词 梦到在河里游泳捞粉条 '他手捧鲜红的获奖证书,泪水涌出了眼眶。’请你跟据提供的作文结尾,展开想象编一个故事, 全国百强旅行社怎么考核 周公解梦梦见在水里捞稻草 勇敢面对的事作文 小学生语文竞赛获奖感言,就是在里面分享我语文学习的经验(学校举行的)急急 朗诵大赛参赛感言 急急急!!! 诗朗诵比赛获奖感言 美缝剂十大品牌? 世界美缝剂十大排名? SHELL脚本中的通配符问题 那个shell编程是在 linux中vi 什么类型的文件。以前只知道.C和.cpp文件 如何用shell获取linux目录下的文件名 ksh和bash的异同,持续更新 unix 编写一个脚本 搜索东西的 用gcc/g++如何编译android工程中的.c/.cpp程序,如何查看android工程师.c/.cpp文件需要的依赖及如何解决 请教,修改ro.sf.lcd 小学生端午节与儿童节如何放假放假??? 端午节学校放假问题 端午节放假问题! 端午怎么放假 端午节时法定节假日吗?国家规定有没有放假的? 翻天覆地害百性、相争二九来;猜一动物 十二生肖里什么肖能翻天覆地? 飞利浦剃须刀s7530/43有充电器吗?为什么我买回来发现没有充电器 飞利浦剃须刀7370充电器 毕业生在笔试中应该注意哪些问题?成功面试的原则有哪些 面试、笔试大概会有哪些问题?帮帮忙 了笔试,面试的时候一般问什么问题 面试和笔试一般考什么,有哪些要注意的