两个程序,我想合并到一起运行,但不知道怎么去合并!求帮助

u011191275 2013-07-26 05:24:50
只有30分了!

描述一下我的两个程序:

一个是writedb.exe是把一个网站上面的数据写到数据库中的
我在处理的时候,是有这么一个tmp.db的,writedb.exe是隔5分钟才执行一次,但是他每次重新执行的时候,都会删掉tmp.db,重新获取网页的数据,在写到tmp.db中



一个search.exe是检索数据库中的数据,从tmp.db中检索



问题来了:我想要把这两个程序,合并到一个test.exe中,似乎是用多线程,也会出现很大的问题,比如刚好writedb.exe的逻辑正在执行,把tmp.db删掉了,当前没有tmp.db,导致search.exe会失败;而且我觉得间隔5分钟,这样的事件发生的概率会很大!


问一个各位!这个要怎么处理一下?才能合并到一起?
...全文
473 15 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
引用 4 楼 u011191275 的回复:
[quote=引用 3 楼 T_meY 的回复:] 每个线程在对tmp.db进行操作时加锁吧?然后search.exe对tmp.db操作前加个判断吧。
这种情况不适合加锁吧,速度太慢了[/quote] 不算特别慢吧,如果数据量不是特别特别大的话,要同步就只能这样了啊
xiuxianshen 2013-07-27
  • 打赏
  • 举报
回复
这不是多线程的读写锁的最基本的例子,一个读锁,一个写锁,很简单的
大尾巴猫 2013-07-27
  • 打赏
  • 举报
回复
要完成楼主的想法,必须在原来的exe添加相应的同步代码,不改动原来的exe做不到。 或者原先的exe本来就具有同步的接口。
buyong 2013-07-27
  • 打赏
  • 举报
回复
写个包装exe,里面调用这2个exe.用CreateProcess
jun_for_linux 2013-07-27
  • 打赏
  • 举报
回复
在检索程序中以读写方式打开文件,不要以只读方式打开文件。这样做时,可以在tmp文件在被读写时无法被删除,这时候设一个小技巧循环一下就可以解决这个问题了。
大尾巴猫 2013-07-27
  • 打赏
  • 举报
回复
2个都是自己的exe就好办了 直接改成多线程的,这样同步和通信容易。 多进程更麻烦。
u011191275 2013-07-27
  • 打赏
  • 举报
回复
引用 9 楼 buyong 的回复:
写个包装exe,里面调用这2个exe.用CreateProcess
这个做法更傻了,还不如用多线程
u011191275 2013-07-27
  • 打赏
  • 举报
回复
引用 8 楼 jun_for_linux 的回复:
在检索程序中以读写方式打开文件,不要以只读方式打开文件。这样做时,可以在tmp文件在被读写时无法被删除,这时候设一个小技巧循环一下就可以解决这个问题了。
不删除 意味着更新失败了,这样我的writedb.exe会返回一个异常,程序就崩了
u011191275 2013-07-27
  • 打赏
  • 举报
回复
引用 6 楼 zhaokai115 的回复:
都一个exe了,可以直接在内存操作,用生产者消费者模型
这种情况不适合生产者消费者 这是因为读写间隔太短,而且并不确定用户什么时候查询
zhaokai115 2013-07-26
  • 打赏
  • 举报
回复
都一个exe了,可以直接在内存操作,用生产者消费者模型
u011191275 2013-07-26
  • 打赏
  • 举报
回复
引用 1 楼 ak47_wz 的回复:
帮你顶一下..
帮我回一下呗
u011191275 2013-07-26
  • 打赏
  • 举报
回复
引用 3 楼 T_meY 的回复:
每个线程在对tmp.db进行操作时加锁吧?然后search.exe对tmp.db操作前加个判断吧。
这种情况不适合加锁吧,速度太慢了
  • 打赏
  • 举报
回复
每个线程在对tmp.db进行操作时加锁吧?然后search.exe对tmp.db操作前加个判断吧。
  • 打赏
  • 举报
回复
多线程同步问题?

65,184

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧