我写了一个Python脚本,它使用GCC和dockross在Windows和Linux上构建一个 应用程序。因为我想加快构建代码的时间,所以我使用线程模块来实现所有四个构建过程(Linux和Windows,32和64位)。Python线程中的信号或互斥
但我发现两个GCC构建对象(对于Linux 32位和64位)处于竞争状态。如果我想同时做两个建筑物,会发生一些错误,并且在dockcross建筑过程中也会发生同样的情况。
两个dockcross建筑对象处于竞赛状态。
是否有任何函数或模块我可以在Python中用于我 将两个线程实现为一个耦合线程,当一个线程完成时,它会发信号给它的耦合线程来启动?
像下面的代码一样,我希望worker [0]和worker [1]具有信号机制,并且还需要worker [2]和worker [3]之间的信号机制。
def main():
linux32_builder = builder(
"linux32", "make CFLAGS=-m32 all", "./", "./", "/root/crossCompile/releaseFolder/")
linux64_builder = builder(
"linux64", "make all", "./", "./", "/root/crossCompile/releaseFolder/")
win64_builder = builder(
"win64", "dockcross-windows-x64 make all", "./", "./", "/root/crossCompile/releaseFolder/")
win32_builder = builder(
"win32", "dockcross-windows-x86 make all", "./", "./", "/root/crossCompile/releaseFolder/")
# linux32_builder.copySourceCodeFromShare()
Worker = []
Worker.append(Make_Thread(1, linux32_builder))
Worker.append(Make_Thread(2, linux64_builder))
Worker.append(Make_Thread(3, win64_builder))
Worker.append(Make_Thread(4, win32_builder))
for i in Worker:
i.start()
i.join()
嗨Cris, 我发现我的问题是对每个线程我改变工作目录,这将导致问题,因为工作目录是一个进程的全局变量。所以我把我的工具改为多进程,现在它工作得很好。这个脚本是关于交叉编译的。 我的工作流程在[这里](https://redliu312.github.io/cross-compile/)中有描述。 –