免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1467 | 回复: 8
打印 上一主题 下一主题

问一个简单的问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-03-19 09:43 |只看该作者 |倒序浏览
写一个LINUX应用程序, 但是看完后发现, 可以创建进程,也能创建线程。

那我们做产品开发,到底使用创建进程好,还是创建线程好? 有什么区别呢?

看树上嵌入式的例子,他们都是通过SLEEP 来控制某个进程的优先运行,好像都是没有优先级的,
有没有什么函数让自己创建的进程先运行呢?

能不能弄个比较经典的例子学习一下。 谢谢!

论坛徽章:
0
2 [报告]
发表于 2009-03-19 09:57 |只看该作者
多进程还是多线程这取决于具体情况,你可搜索一下,这个问题讨论的还是比较多的
vfork函数能保证创建的子进程优先运行。。。具体能不能满足你的需要你可以man一下,用sleep也是可以的其实

论坛徽章:
0
3 [报告]
发表于 2009-03-19 10:04 |只看该作者
那如果有要创建好几个子进程, 都用 vfork 的话, 那哪个子进程优先运行呢?

论坛徽章:
0
4 [报告]
发表于 2009-03-19 10:09 |只看该作者
你仔细想想你所问的问题,答案就出来啦------程序是顺序执行

论坛徽章:
0
5 [报告]
发表于 2009-03-19 10:17 |只看该作者
vfork是调用时拷贝的,开销会比较划算。

论坛徽章:
0
6 [报告]
发表于 2009-03-19 10:28 |只看该作者
呵呵,谢谢几位的帮助!

也就是说如果有几个进程,我要先分配好顺序,然后再按顺序VORK 下来, 就等于给每个进程分配了优先级? 也就说父进程的优先级最低了?

比如
a1=vfork();
a2=vfork();
a3=vfork();
这样就相当于 优先级 a1>a2>a3 , 对吗?   那这样的话 fork() 用处就不大了,因为不能确保哪个进程优先运行

[ 本帖最后由 star316 于 2009-3-19 10:30 编辑 ]

论坛徽章:
0
7 [报告]
发表于 2009-03-19 10:36 |只看该作者
此言差矣!不同的需求有不同的解决方案

论坛徽章:
0
8 [报告]
发表于 2009-03-19 10:49 |只看该作者
呵呵, 我这是想先了解优先级的问题, 那我上面说的优先级的分配,这样有问题吗? 或者有好点的方法吗?

论坛徽章:
0
9 [报告]
发表于 2009-03-19 15:12 |只看该作者
优先级并不能保证某个进程先于另外的进程执行。
可以考虑信号量或锁的方式来控制某个进程先于另外的进行执行。 具体可参考《UNIX网络编程》第二卷。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP