[英]Python reading data from CSV in memory and writing it to cassandra in multi threaded
[英]Reading and writing to/from memory in Python
让我们想象一下一种情况:我有两个Python程序。 第一个将一些数据(str)写入计算机内存,然后退出。 然后,我将启动第二个程序,该程序将读取第一个程序保存的内存数据。
这可能吗?
有点。
python p1.py | python p2.py
如果p1写入标准输出,则数据将进入内存。 如果p2从stdin中读取,它将从内存中读取。
问题在于没有“我将随后启动第二个程序”。 您必须启动两个程序,以便它们共享适当的内存(在这种情况下,为stdout和stdin之间的缓冲区。)
使用诸如dbm,sqlite,shelf,pickle等数据库之类的东西将数据存储到“内存”中,您的第二个程序可以在以后使用。
这些胡扯的答案是什么? 当然,您可以按照要求的方式共享内存,没有技术原因,除了缺少用户模式API之外,您不应该保留内存。
在Linux中,您可以使用共享内存段,这些共享内存段即使在组成共享内存的程序消失后仍然存在。 您可以使用ipcs(1)
查看/编辑它们。 要创建它们,请参见shmget(2)
和相关的系统调用。
或者,您可以使用POSIX共享内存,它可能更便于携带。 参见shm_overview(7)
我想您可以在Windows上做到这一点 。
没有。
一旦第一个程序退出,它的内存就完全消失了。
您需要写入磁盘。
第一个将一些数据(str)写入计算机内存,然后退出。
然后,操作系统将确保在所有其他程序看到内存之前将所有内存清零。 (这是一项重要的安全措施,因为第一个程序可能已经在处理您的银行对帐单或您的密码了)。
您需要写入永久存储-可能是磁盘。 (或者您可以使用虚拟磁盘,但这不太可能对实际性能产生任何影响)。
或者,为什么您有2个程序? 为什么不能同时执行这两个任务的程序?
您还可以设置持久性共享内存区域,并让一个程序写入其中,而另一个程序读取它。 但是,设置这些东西在某种程度上取决于底层的O / S。
也许张贴者在谈论共享内存之类的东西? 看看这个: http : //poshmodule.sourceforge.net/
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.