Perl脚本,使用fork或线程?
我正在编写一些脚本来收集来自多个服务器的数据,这个数字会增长,并且我会尝试将来证明我的脚本,但是我有点卡住了.
所以首先我有一个脚本在mysql数据库中查找IP,然后连接到每个服务器抓取一些信息,然后再次将其放入数据库. 我一直认为这是有限的时间来做这个,如果我有100台服务器,需要一点时间去每个服务器获取信息,然后将其推送到数据库.所以我想过在perl中使用fork或thread? 在我的情况下哪个是首选?而且有人有任何例子吗? 谢谢! 编辑:好的,所以需要更多的信息:我在Linux上运行,我认为我可以获得主脚本来收集数据库信息,然后发送每个子流程/任务来连接和收集信息然后再推送信息到数据库. 解决方法
哪个最好取决于您的需求;但是我的经验是值得的:
上次我使用perl的线程时,我发现它实际上比分叉更慢,更有问题,因为: >线程无论如何都会复制所有数据,就像线程一样,但是事先就完成了 需要注意的一个陷阱是“forks”库,它模拟“线程”但使用真正的分叉.我在这里遇到的问题是它模仿的许多行为正是我试图摆脱的.我最终使用了经典的老式“fork”并使用套接字在需要的地方进行通信. fork的问题(库,而不是fork命令): >仍然困惑数据库系统>共享变量仍然非常有限>覆盖’fork’命令,导致软件中其他地方出现意外行为 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |