有一种简单的方法可以使用多处理来完成相同的操作吗?
for sim in sim_list:
sim.run()
Run Code Online (Sandbox Code Playgroud)
其中sim_list的元素是"模拟"对象和运行()是模拟类的方法做修改的对象的属性.例如:
class simulation:
def __init__(self):
self.state['done']=False
self.cmd="program"
def run(self):
subprocess.call(self.cmd)
self.state['done']=True
Run Code Online (Sandbox Code Playgroud)
sim_list中的所有sim都是独立的,因此策略不必是线程安全的.
我尝试了以下内容,这显然是有缺陷的,因为参数是通过deepcopy传递的,并且没有就地修改.
from multiprocessing import Process
for sim in sim_list:
b = Process(target=simulation.run, args=[sim])
b.start()
b.join()
Run Code Online (Sandbox Code Playgroud) 我有一个Fortran派生类型T,它包含(许多)不同等级和类型的数据数组.这些数组隐藏在一个复杂的数据结构中,我想有一个getter函数,它执行以下操作:
a => T%get(data_id)
Run Code Online (Sandbox Code Playgroud)
其中"a"是给定类型的数组指针,data_id是一个整数,用于查找数据结构内的数据.我通过在通用名称下重载许多"get_thistype()"函数来做到这一点.
TYPE T
PROCEDURE :: get_real
PROCEDURE :: get_integer
GENERIC :: get => get_real,get_integer
END TYPE
Run Code Online (Sandbox Code Playgroud)
如果get_thistype()例程是子例程,则此方法有效,但如果它们被写为函数则不行.这意味着我的代码如下:
CALL T%get(a,data_id)
Run Code Online (Sandbox Code Playgroud)
我发现它的可读性要低得多.有没有办法重载具有相同参数列表但返回类型不同的函数?或者我必须使用子程序吗?
上下文:我(错误地)使用 Git 不是为了版本控制,而是为了记录文件之间的关系。Git 的内部数据结构(基本上是一个对象图)正是我需要的(加密哈希等),并且有很多非常好的工具来操作数据。
到目前为止,我无法做的一件事是将整个图形推送到远程存储库。据我了解,git push只作用于refs,而不作用于objects。是否有一种简单的方法可以将所有对象(提交、树、blob)推送到远程,或者我是否必须branch首先在每个提交上添加一个 ref(例如 a ),然后推送所有分支,然后删除所有分支(本地和远程)?