双处理器硬件的PIL问题

嗨,大家好, 我有问题,但是很大! 因此,我有一个python/pil应用程序来操纵图像(旋转, 作物,保存等). 如果此应用程序可以在PC单处理器上使用,我没有任何 问题. 如果此应用程序在PC Bi Processor上工作,则该过程 详细说明图像"损坏": 我的意思是"腐败",因为: 如果我使用任何图像视图打开此图像,它将显示图像 带有背景颜色在顶部蓝色,底部绿色. 有时候 可能会发生在内部的某些设计是错误的设计. 如果我使用GIMP打开此图像,则将显示此消息: 损坏的jpeg数据:36(此值永远不等)外多字节 在标记0xD9之前 EXIF数据将被忽略. 此错误没有产生它的过程. 这是随机的. 我已经在PC单处理器中执行了此应用程序,似乎全部 好的(100%),而是在PC Bi Processor上有时不起作用(90%? ). THX非常非常

# 回答1

>如果此应用程序可以在PC单处理器上使用,我没有任何 听起来您有一些线程同步问题. 在单个处理器上 系统,您的线程串行运行,但在SMP系统上(即 Bi Processor)您的线程真正地在CPU中运行. 我会很好地看一下您目前锁定的任何数据,或者应该是 锁定. 很难不用 确切地知道代码的样子.
# 回答2

好的,这是代码: """ 图像是图像类的对象实例,其中包含全部 信息 """ pil = image.open(os.path.join(image.path,image.name)) 如果image.rotation_angle!= 2: 尝试: pil = pil.rotate(rotation_levels [image.rotation_angle] ) 除了: trackback.print_exc() 结果= false if(image.sopped): box = [float(image.cropx),\ float(image.cropy),\ (float(image.cropx)+float(image.cropw)),\ (float(image.cropy)+float(image.croph)) 这是给予的 尝试: pil = pil.crop(框) 除了: trackback.print_exc() 如果pil.size [0]
# 回答3

我想知道是否还有其他线程访问图像? 也许不是图像 在此代码访问该代码之前,由其他线程完全初始化? 很难说出了什么问题. 我不相信SMP系统 除非使用多个,否则对应用程序有任何影响 执行线程. 我怀疑是否
# 回答4

糟糕. 失去了我的思路. 我要说的是,我想知道是否有 这些图像操纵例程使用多个线程?
# 回答5

da ********@yahoo .com写道: PIL本身不会使用线程,我知道有很多基于PIL的 在多处理器硬件上运行的系统(更不用说多核 和超线程系统). 如果已经发布的片段,我会把它归咎于硬件;-)

标签: python

添加新评论