我寫了一個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/)中有描述。 –